首页 > 解决方案 > VS 2017 未解析的外部符号 __imp__stricmp (libcrypto_static.lib)

问题描述

我正在静态链接 OpenSSL 库(在 Windows 上),但我有大约 30 个链接器错误,类似于这个:

libcrypto_static.lib(o_names.obj) : error LNK2001: unresolved external symbol __imp__stricmp

按照建议,我使用了以下指令:

pragma comment(lib, "crypt32") pragma comment(lib, "ws2_32.lib") 还有链接器设置:

Ignore Specific Default Libraries: libcmt.lib; msvcrt.lib;msvcrtd.lib

如果我从上面删除 msvcrtd.lib,我可以编译。但这是不正确的,因为 msvcrtd.lib 用于动态链接,我想静态链接。编译器应该会在 libcmtd.lib(调试版本)中找到缺失的定义。编译使用 /MT 标志来使用静态链接。

我错过了什么?在我看来,OpenSSL 静态加密库仍然需要 MS 运行时动态 DLL。

标签: opensslc++17static-librariesstatic-linkinglibcrypto

解决方案


推荐阅读