【问题标题】:Statically linking OpenSSL is trying to load DLLs静态链接 OpenSSL 正在尝试加载 DLL
【发布时间】:2019-06-11 21:40:44
【问题描述】:

我有一个项目使用 OpenSSL 在套接字连接上发送和接收。我已将 libssl.lib 和 libcrypto.lib 添加到我的配置中。

Project Properties -> Linker -> Input -> Additional Dependencies

但是当我使用 Visual Studio dumpbin 工具检查导入时,它需要 Dll:

libssl-1_1-x64.dll
libcrypto-1_1-x64.dll

我不确定如何静态包含这两个文件,因为我认为这是我正在做的事情?

【问题讨论】:

标签: c windows openssl


【解决方案1】:

这取决于您使用的 OpenSSL 发行版。 Visual C++ 链接器不理解 .dll 文件,因此使用配对的 .lib 文件来定义 dll 的入口点。

.lib 文件当然是一种特定于工具链的格式,因此通常不希望 - 甚至不可能 - 分发 dll 文件和配对的 .lib 文件而不具体指定它们打算用于哪个 Visual C++ 版本。

因此,无论您下载或构建什么,生成的 .lib 文件都是导入库而不是实际的静态库。您需要查看发行版的文档以了解如何获取实际的静态库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多