visual-studio - 更新SSL版本后POCO“无法解析的外部符号”链接器错误

标签 visual-studio ssl poco

我一直在尝试将POCO库升级到1.9.0,这需要我升级SSL,SSL更改了一些库名称。我正在从Shining Light使用SSL(OpenSSL-Win64-110g)

我能够重新编译新的poco-1.9.0库,包括重新编译vs2015中指向新SSL(110g)版本的Crypto和Net_SSL_Open_SSL。

在我的项目中,我引用了新编译的POCO库,并引用了新的SSL库路径。

新的SSL似乎已分别用libcrypto64MT.dll和libssl64MT.dll替换了ssleay32MT.lib和libeay32MT.lib,因此我也在项目中更改了这些引用。

编译时,出现36个与Net,NetSSL和Crypto库关联的LNK2001“未解析的外部符号”错误。 (下面列出)。

我想知道SSL 110g库对于POCO 1.9还是太新了,还是需要用VS2015进行编译。不能确定。关于检查的事情有什么想法吗?

错误清单:

严重性代码说明项目文件行源错误LNK2001无法解析的外部符号GetAdaptersInfo Server \ trunk \ Server \ ide \ windows \ PocoFoundationmt.lib(Environment.obj)
错误LNK2001无法解析的外部符号__imp_WSAStartup Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(Net.obj)
错误LNK2001无法解析的外部符号__imp_WSAStartup Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock.obj)
错误LNK2001无法解析的外部符号__imp_WSACleanup Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(Net.obj)
错误LNK2001无法解析的外部符号__imp_WSACleanup Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock.obj)
错误LNK2001无法解析的外部符号__imp_htons Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketAddress.obj)
错误LNK2001无法解析的外部符号__imp_ntohs Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketAddress.obj)
错误LNK2001无法解析的外部符号__imp_ntohs Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketAddressImpl.obj)
错误LNK2001无法解析的外部符号__imp_ntohs Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock.obj)
错误LNK2001无法解析的外部符号__imp_ntohs Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_addr.obj)
错误LNK2001无法解析的外部符号__imp_getservbyname Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketAddress.obj)
错误LNK2001无法解析的外部符号__imp_accept Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_accept Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_bind Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_bind Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_closesocket Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_closesocket Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_connect Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_connect Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_ioctlsocket Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_ioctlsocket Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock.obj)
错误LNK2001无法解析的外部符号__imp_getpeername Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_getsockname Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_getsockname Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock.obj)
错误LNK2001无法解析的外部符号__imp_getsockopt Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_getsockopt Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock.obj)
错误LNK2001无法解析的外部符号__imp_getsockopt Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_listen Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_listen Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_recv Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_recv Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(bss_sock.obj)
错误LNK2001无法解析的外部符号__imp_recv from Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_select Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_select Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(Socket.obj)
错误LNK2001无法解析的外部符号__imp_send Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_send Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(bss_sock.obj)
错误LNK2001无法解析的外部符号__imp_sendto Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_setsockopt Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_setsockopt Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_shutdown Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_socket Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_socket Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_WSAGetLastError Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock2.obj)
错误LNK2001无法解析的外部符号__imp_WSAGetLastError Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(SocketImpl.obj)
错误LNK2001无法解析的外部符号__imp_WSAGetLastError Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(Socket.obj)
错误LNK2001无法解析的外部符号__imp_WSAGetLastError Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock.obj)
错误LNK2001无法解析的外部符号__imp_WSAGetLastError Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(bss_sock.obj)
错误LNK2001无法解析的外部符号__imp_gethostname Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(DNS.obj)
错误LNK2001无法解析的外部符号__imp_getaddrinfo Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(DNS.obj)
错误LNK2001无法解析的外部符号__imp_getaddrinfo Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(IPAddressImpl.obj)
错误LNK2001无法解析的外部符号__imp_getaddrinfo Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_addr.obj)
错误LNK2001无法解析的外部符号__imp_freeaddrinfo Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(DNS.obj)
错误LNK2001无法解析的外部符号__imp_freeaddrinfo Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(IPAddressImpl.obj)
错误LNK2001无法解析的外部符号__imp_freeaddrinfo Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_addr.obj)
错误LNK2001无法解析的外部符号__imp_getnameinfo Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(DNS.obj)
错误LNK2001无法解析的外部符号__imp_getnameinfo Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_addr.obj)
错误LNK2001无法解析的外部符号__WSAFDIsSet Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(Socket.obj)
错误LNK2001无法解析的外部符号__imp_inet_addr Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(IPAddressImpl.obj)
错误LNK2001无法解析的外部符号__imp_ntohl Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib(IPAddressImpl.obj)
错误LNK2001无法解析的外部符号_vsnprintf Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(cryptlib.obj)
错误LNK2001无法解析的外部符号_vsnwprintf Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(cryptlib.obj)
错误LNK2001无法解析的外部符号__iob_func Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(eng_openssl.obj)
错误LNK2001无法解析的外部符号__iob_func Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(e_capi.obj)
错误LNK2001无法解析的外部符号__iob_func Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(pem_lib.obj)
错误LNK2001无法解析的外部符号__iob_func Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(ui_openssl.obj)
错误LNK2001无法解析的外部符号__imp_gethostbyname Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(b_sock.obj)
错误LNK2001无法解析的外部符号__imp_WSASetLastError Server \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib(bss_sock.obj)
错误LNK1120 36无法解析的外部Server \ trunk \ Server \ ide \ windows \ x64 \ Release \ iqagent.exe

最佳答案

好的,所以我知道了。加密错误是因为我在POCO项目链接器中所做的设置未保存;我在运行编译器时注意到,链接器的输出不包括新的SSL库(libcrypto.lib,libssl.lib)等。我还链接到Crypto和Net_SSL中的静态库。

关于PocoNET错误,我必须在链接器add'l lib依赖项中包含ws2_32.lib和iphlpapi.lib。过去我不需要这样做。

我希望这对类似情况的人有所帮助。

关于visual-studio - 更新SSL版本后POCO“无法解析的外部符号”链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50164083/

相关文章:

visual-studio - 在 lightswitch 应用程序中保存屏幕更改历史记录

c# - Mysql + Visual Studio 2012 "Failed to find or load the registered .Net Framework Data Provider"

mysql - 连接Mysql数据库和visual basic

C#用户控件崩溃VS11

c# - 如何通过 Google 方式找出可能的中间人?

mysql - Postgres 中相当于 MySql 语句 GRANT USAGE ON *.* TO ‘%’ @’%’ REQUIRE SSL

entity-framework - Entity Framework 代码第一个问题无法确定类型之间关联的主体

iphone - IPhone 中的 SSL 域错误- https 连接

c++ - POCO C++ 框架库在嵌入式系统中的使用

c++ - Poco SSLManager 和 SecureStreamSocket 可以支持 SSL/TLS PSK(预共享 key 密码套件)吗?