POCO «неразрешенные ошибки внешнего компоновщика» после обновления версии SSL - PullRequest
0 голосов
/ 04 мая 2018

Я пытался обновить свои библиотеки POCO до 1.9.0, что потребовало от меня обновить SSL, который изменил некоторые имена библиотек. Я использую SSL (OpenSSL-Win64-110g) от Сияющий свет

Мне удалось перекомпилировать новые библиотеки poco-1.9.0, в том числе перекомпилировать Crypto и Net_SSL_Open_SSL в vs2015, указывая на новую версию SSL (110g).

В моем проекте я ссылаюсь на недавно скомпилированные библиотеки POCO и ссылаюсь на новые пути lib SSL.

Новый SSL, похоже, заменил ssleay32MT.lib и libeay32MT.lib на libcrypto64MT.dll и libssl64MT.dll, соответственно, поэтому я также изменил эти ссылки в своем проекте.

При компиляции я получаю 36 ошибок LNK2001 "Unresolved External Symbol", связанных с библиотеками Net, NetSSL и Crypto. (перечислено ниже).

Мне интересно, что либо библиотека 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 Сервер \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (SocketAddress.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_ntohs Сервер \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (SocketAddress.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_ntohs Сервер \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (SocketAddressImpl.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_ntohs Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (b_sock.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_ntohs Сервер \ 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 Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (b_sock.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_getsockopt Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (SocketImpl.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_getsockopt Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (b_sock.obj) Ошибка LNK2001, неразрешенный внешний символ __imp_getsockopt Сервер \ 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_recvfrom 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 Сервер \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (SocketImpl.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_send Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (bss_sock.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_sendto Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (SocketImpl.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_setsockopt Сервер \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (SocketImpl.obj) Ошибка LNK2001, неразрешенный внешний символ __imp_setsockopt Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (b_sock2.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_shutdown Сервер \ 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 Сервер \ 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 Сервер \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (DNS.obj)Ошибка LNK2001: неразрешенный внешний символ __imp_getnameinfo Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (b_addr.obj) Ошибка LNK2001: неразрешенный внешний символ __WSAFDIsSet Server \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (Socket.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_inet_addr Сервер \ trunk \ Server \ ide \ windows \ PocoNetmt.lib (IPAddressImpl.obj) Ошибка LNK2001: неразрешенный внешний символ __imp_ntohl Сервер \ 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 Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (eng_openssl.obj) Ошибка LNK2001: неразрешенный внешний символ __iob_func Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (e_capi.obj) Ошибка LNK2001: неразрешенный внешний символ __iob_func Сервер \ trunk \ Server \ ide \ windows \ libcrypto64MT.lib (pem_lib.obj) Ошибка LNK2001: неразрешенный внешний символ __iob_func Сервер \ 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

1 Ответ

0 голосов
/ 04 мая 2018

ОК, так что я понял это. ошибки Crypto были вызваны тем, что настройки, которые я сделал в компоновщике проекта POCO, не сохранились; При запуске компилятора я заметил, что вывод компоновщика не включает новые библиотеки SSL (libcrypto.lib, libssl.lib) и т. Д. Я также связывался со статическими библиотеками в Crypto и Net_SSL.

В случае ошибок PocoNET мне пришлось включить ws2_32.lib и iphlpapi.lib в мои зависимости компоновщика add'l lib. Я не должен был делать это в прошлом.

Я надеюсь, что это помогает кому-то в подобных обстоятельствах.

...