Использование OpenSSL v1.1.1 в Qt-проекте для Windows - PullRequest
0 голосов
/ 24 марта 2020

Моя Windows программа использует библиотеку OpenSSL для получения JSON данных по HTTPS.

В Qt версии 5.12.3 использовалась библиотека OpenSSL 1.0.2, и с ней все было легко и просто. Я просто помещаю файлы из "c: \ Qt \ Qt5.12.3 \ Tools \ mingw730_64 \ opt \ bin \" (ssleay32.dll, libeay32.dll) в папку с исполняемым файлом моей программы и все работает ( для компиляции я использую MinGW).

Теперь с Qt 5.14.1 пришел OpenSSL 1.1.1d, и я не понимаю, как я могу подключить его к моей программе, чтобы QNetworkAccessManager наконец начал работать. Библиотеки "ssleay32.dll", "libeay32.dll" версии 1.1.1d просто не существуют. Я пытался поместить библиотеки libcrypto-1_1.dll и libssl-1_1.dll (из c: \ Qt \ Qt5.14.1 \ Tools \ QtCreator \ bin) в мой exe, но это не помогло.

Да, они 32-битные, но я также попытался скомпилировать свой проект как x32.

Код

qDebug () << QSslSocket :: supportsSsl () << QSslSocket :: sslLibraryBuildVersionString () << QSslSocket :: sslLibraryVersionString ();

возвращает

false "OpenSSL 1.1.1d 10 Sep 2019" ""

Итак .. Есть для Windows 10 возможно подключить Qt-проект к OpenSSL v1.1.1d - без перекомпиляции Qt и без компиляции библиотек OpenSSL ??

1 Ответ

0 голосов
/ 25 марта 2020

Я столкнулся с той же проблемой, что и вы. Я думал, что это проблема с OpenSSL, пока я не прочитал Qt для Windows - Развертывание , я скопировал vccorlib140.dll и vcruntime140.dll в мою программную директорию, и все работало нормально.

...