Я не понимаю, что вызывает создание dllC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Я не понимаю, что вызывает создание dll

Сообщение Anonymous »

Я использую 3 библиотеки, подключил их все с помощью vcpkg, используя static, скомпилировал в Release/MT, но не понимаю, почему 2 из них создаются динамически:
»libcrypto-3-x64.dll , ssh.dll".
Через DependencyWalker я увидел, что сам exe-файл напрямую требует только ssh.dll, а ssh.dll требует libcrypto-3-x64.dllС jsoncpp.lib проблем нет
Я добавил их в проект соответственно: "C:\Program Files\Microsoft Visual Studio\2022\vcpkg\packages\ openssl_x64-windows-static\lib;C:\Program Files\Microsoft Visual Studio\2022\vcpkg\packages\libssh_x64-windows-static\lib;C:\Program Files\Microsoft Visual Studio\2022\vcpkg\packages\jsoncpp_x64- windows-static\lib"
Я также добавил соответствующие библиотеки в список дополнительных зависимостей: "$(CoreLibraryDependities);%(AdditionalDependities)Crypt32.lib;ws2_32.lib;ssh. lib;jsoncpp.lib;libcrypto.lib"

Но дело в том, что libcrypto.lib нужны другие библиотеки Windows, которые я тоже включаю (без указания пути им): Crypt32.lib;ws2_32.lib

Также я использую аналогичные настройки включения и прагмы:

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 
#include 
#include 

#pragma comment(lib, "Crypt32.lib")
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "jsoncpp.lib")
#pragma comment(lib, "libcrypto.lib")
#pragma comment(lib, "ssh.lib")
Может быть, дело в подключении заголовочных файлов .h (openssl/evp.h, libssh/sftp.h, fcntl.h) из libssh и openssl?

Я понимаю, что проблема скорее всего в Crypt32.lib и
ws2_32.lib, но я новичок и не понимаю как это исправить; Я не смог найти в Интернете способа статически соединить эти две библиотеки. Я конечно мог бы потратить время сам и найти решение, но я уже потратил весь день на понимание статической компиляции и поэтому прошу вашей помощи.
Что тут добавить, проблема только в этом. с ssh.lib, с libcrypto.lib проблем нет (проверено). Скорее всего ssh.lib нельзя сделать статическим, что очень печально. Но если у кого-то есть идеи, буду рад.

Подробнее здесь: https://stackoverflow.com/questions/786 ... l-creation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»