Мне нужно создать отдельное двоичное приложение с поддержкой OpenSSL. Для разработки я использую Qt Framework.
Проблема, с которой я сталкиваюсь, заключается в том, что при тестировании моего приложения на тестовой машине у меня нет поддержки SSL.
Что у меня естьdone ( лучше спросить, что я не пробовал ):
Я скомпилировал Qt с OpenSSL 1.1.1d, скачанный с здесь (перекомпилирован около 15 разс разными опциями конфигурации, занимающими около 6 часов на компиляцию - много потерянного времени).
Для компиляции статического Qt я использовал скрипт this (слегка адаптированный из this скрипт из Qt, включающий количество используемых потоков и указывающий OpenSSL HOME).
M варианты конфигурации:
cmd /C "configure.bat -static -debug-and-release -platform win32-g++ -prefix $QtDir `
-qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-sqlite -ssl -openssl -I $($OPENSSL_HOME)\include -L$($OPENSSL_HOME)\lib\MinGW`
-opensource -confirm-license `
-make libs -nomake tools -nomake examples -nomake tests -v"
cmd /C "mingw32-make -k -j$($threads)"
макет каталога OpenSSL_HOME
Directory: C:\OpenSSL\OpenSSL-Win32
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2019/09/30 07:27 bin
d----- 2019/09/30 07:27 exp
d----- 2019/09/30 07:27 include
d----- 2019/09/30 07:27 lib
d----- 2019/09/30 07:27 tests
-a---- 2019/09/11 18:10 89 acknowledgements.txt
-a---- 2019/09/11 18:10 752 authors.txt
-a---- 2019/09/11 18:10 596279 changes.txt
-a---- 2019/09/11 18:10 6408 c_rehash.pl
-a---- 2019/09/11 18:10 86 faq.txt
-a---- 2019/09/11 18:10 2515456 libcrypto-1_1.dll
-a---- 2019/09/11 18:10 530432 libssl-1_1.dll
-a---- 2019/09/11 18:10 6246 license.txt
-a---- 2019/09/11 18:10 43136 news.txt
-a---- 2019/09/11 18:10 3251 readme.txt
-a---- 2019/09/30 07:27 96904 unins000.dat
-a---- 2019/09/30 07:26 730789 unins000.exe
Directory: C:\OpenSSL\OpenSSL-Win32\lib
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2019/09/30 07:27 MinGW
d----- 2019/09/30 07:27 VC
-a---- 2019/09/11 18:10 1840 capi.lib
-a---- 2019/09/11 18:10 1866 dasync.lib
-a---- 2019/09/11 18:10 985224 libapps.lib
-a---- 2019/09/11 18:10 109020 libcrypto.def
-a---- 2019/09/11 18:10 1013446 libcrypto.lib
-a---- 2019/09/11 18:10 34718436 libcrypto_static.lib
-a---- 2019/09/11 18:10 14033 libssl.def
-a---- 2019/09/11 18:10 122290 libssl.lib
-a---- 2019/09/11 18:10 7058838 libssl_static.lib
-a---- 2019/09/11 18:10 448842 libtestutil.lib
-a---- 2019/09/11 18:10 1734 openssl.lib
-a---- 2019/09/11 18:10 1892 ossltest.lib
-a---- 2019/09/11 18:10 1880 padlock.lib
-a---- 2019/09/11 18:10 1722 uitest.lib
Directory: C:\OpenSSL\OpenSSL-Win32\lib\MinGW
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2019/09/11 18:11 3347286 libcrypto.a
-a---- 2019/09/11 18:10 109020 libcrypto.def
-a---- 2019/09/11 18:11 385126 libssl.a
-a---- 2019/09/11 18:10 14033 libssl.def
При запуске автономной .exe
на новой установке Windows 7/10 вызов QSslSocket::supportSsl()
имеет следующий эффект.
Это было проверено с OpenSSL в пути (путь cmd) с версией OpenSSL 1.0.2g / p . Поддержка SSL возвращает false .
На моем компьютере разработчика установлено 1.1.1d , но openssl не в пути (cmd path), но возвращает true для поддержки SSL. SSL поддерживается на машине .
Сборка машины со статическим инструментарием Qt (на котором также был встроен статический Qt) имеет OpenSSL 1.0.2g inтолько путь . На компьютере поддерживается SSL . за исключением моего ПК с установленным OpenSSL 1.1.1d. Разница между этой машиной и вышеупомянутой проверенной машиной заключается в том, что Qt creator установлен с OpenSSL, установленным по предоставленной ссылке.
В моих проектах я добавлял в файл .pro
для каждой сборки в надежде это поможет (не помогло)
INCLUDEPATH += "C:\OpenSSL\OpenSSL-Win32\include"
LIBS += -L"C:\OpenSSL\OpenSSL-Win32\lib\MinGW\libssl.a"
LIBS += -L"C:\OpenSSL\OpenSSL-Win32\lib\MinGW\libcrypto.a"
Я пробовал различные варианты компиляции статического Qt с OpenSSL -Include и -Libs & с каждой из компиляций, пытался связать сстатические VC OpenSSL libs, MinGW libs и *.dlls
, но, похоже, ничего не работает.
Я нахожусь в тупике, и у меня нет ничего, что можно попробовать. Мне действительно нужна помощь в решении этой проблемы.