我一直在尝试将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/