gpt4 book ai didi

c++ - 为什么 OpenSSL 在 Windows 上无法正确链接

转载 作者:行者123 更新时间:2023-12-03 12:49:48 29 4
gpt4 key购买 nike

我正在将 OpenSSL 1.1.0d 用于使用 Visual Studio 2013 构建的托管 C++ 项目。构建调试效果很好,但构建发布会生成以下链接器错误:

error LNK2019: unresolved external symbol _SSLv23_server_method
error LNK2019: unresolved external symbol _SSLv23_client_method
error LNK2019: unresolved external symbol _CRYPTO_num_locks
error LNK2019: unresolved external symbol _CRYPTO_set_locking_callback
error LNK2019: unresolved external symbol _CRYPTO_set_dynlock_create_callback
error LNK2019: unresolved external symbol _CRYPTO_set_dynlock_lock_callback
error LNK2019: unresolved external symbol _CRYPTO_set_dynlock_destroy_callback
error LNK2019: unresolved external symbol _OPENSSL_add_all_algorithms_noconf
error LNK2019: unresolved external symbol _EVP_cleanup
error LNK2019: unresolved external symbol _SSL_load_error_strings
error LNK2019: unresolved external symbol _SSL_library_init
error LNK2019: unresolved external symbol _ERR_free_strings
error LNK2019: unresolved external symbol _CONF_modules_free
error LNK2019: unresolved external symbol _sk_num
error LNK2019: unresolved external symbol _sk_value

我尝试使用自己构建的 OpenSSL 以及 sigmoid 的预编译版本,结果是相同的。

我的假设是,虽然这些 OpenSSL 构建使用“/MD”,但仅此还不足以与我的托管 C++ 项目兼容。然而,由于管理层没有直接调用 OpenSLL,因此我的理解是使用“/MD”进行构建就足够了。另外,调试版本工作得很好。那么为什么只有第一个版本会卡住呢?

导致这些链接器错误的原因是什么?如何解决这些错误?

最佳答案

您可能使用了错误的 OpenSSL 版本。尝试 OpenSSL v1.0.2k。它所提示的符号不包含在 1.1.x 分支中。

如有必要,请记得链接 ws_lib32.lib 和 crypt32.lib。

关于c++ - 为什么 OpenSSL 在 Windows 上无法正确链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007289/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com