【发布时间】:2021-10-15 12:28:31
【问题描述】:
我遵循了一个关于如何使用 Visual Studios 构建和链接 OpenSSL 的教程,但是在测试时我遇到了大量的链接器错误,这让我相信我在设置 OpenSSL 时可能做错了什么。
我遇到的一个错误(它们看起来都非常相似): LNK2001 未解析 extern Symbol "__imp_gethostbyname" - libcrypto.lib(libcrypto-lib-bio_addr.obj)
我总共收到 34 条此类错误消息(很抱歉,如果我的确切错误消息的翻译不是 100% 准确,因为我的 Visual Studio 不是英文的)。
所以我按照教程链接库的方式如下:
【问题讨论】:
-
您需要链接到 Microsoft 库
Ws2_32.lib,如本 msdn 文档中所述:https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-gethostbyname -
你应该看看这个页面。 stackoverflow.com/questions/32156336/…
-
为什么我需要链接该库(以及我将如何做到这一点 - 抱歉,因为我是使用 c++ 库的初学者,这对我来说并不明显)?我没有在任何实施 openssl 的指南中看到这一点。这个“__imp_gethostbyname”链接错误(如我的问题中所述)不是我唯一的链接错误。对我来说,它看起来更像是我忘记了 openssl 的配置和设置中的某些内容,仅仅是因为错误数量众多,而且还因为它在错误消息选项卡的“文件”列的每一行中都显示了“libcrypto.lib”。
标签: c++ visual-studio openssl