Статически связывающий OpenSSL пытается загрузить DLL - PullRequest
0 голосов
/ 17 января 2019

У меня есть проект, который использует OpenSSL для отправки и получения через сокетное соединение. Я добавил libssl.lib и libcrypto.lib в мою конфигурацию.

Project Properties -> Linker -> Input -> Additional Dependencies

Но когда я использую инструмент мусорной корзины Visual Studio для проверки импорта, он требует Dlls:

libssl-1_1-x64.dll
libcrypto-1_1-x64.dll

Я не уверен, как включить эти два файла статически, поскольку я думал, что это было то, что я делал?

1 Ответ

0 голосов
/ 17 января 2019

Это будет зависеть от дистрибутива OpenSSL, который вы используете. Компоновщик Visual C ++ не понимает DLL-файлы, поэтому использует парные .lib-файлы для определения точек входа в DLL.

.lib-файлы, конечно, представляют собой специфический формат цепочки инструментов, поэтому обычно нежелательно - или даже невозможно - распространять dll-файлы и парные .lib-файлы без указания, для какой именно версии Visual C ++ они предназначены для использования.

Таким образом, независимо от того, что вы скачали или собрали, вы получите .lib-файлы, которые являются библиотеками импорта, а не настоящими статическими библиотеками. Вам нужно проверить документацию с дистрибутивом, чтобы узнать, как получить действительные статические библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...