Qt - ошибка SLL в Windows
Мое приложение выдает следующие ошибки на окнах:
QSslSocket: невозможно вызвать неразрешенную функцию SSLv3_client_method
QSslSocket: невозможно вызвать неразрешенную функцию SSL_CTX_new
QSslSocket: невозможно вызвать неразрешенную функцию SSL_library_init
QSslSocket: не может вызвать неразрешенную функцию ERR_get_error
QSslSocket: не может вызвать неразрешенную функцию ERR_error_string
Я уже установил распространяемые файлы VS C++ и OpenSSL, но я понятия не имею, как сказать Qt динамически связываться с openSSL. Я использую LGPL-версию бинарных файлов Qt и Qt Creator для Windows 7 (сборка Linux работает просто отлично)
2 ответа
По какой-то причине Qt не очень хорошо справлялся с DLL-файлами, загруженными из Win32 OpenSSL Installation Project. Поскольку я заметил, что приложение работало без проблем на машинах с установленной Tortoise Svn, я просто скопировал dll, поставляемый с Tortoise, и это сработало очень хорошо для меня.
Я знаю, странно, что эти dll работали, а те из Win32 OpenSSL Installation Project - нет, но пока копирование dll из папки установки Tortoise Svn решило мою проблему.
Загрузите последние версии готовых двоичных файлов OpenSSL с этого сайта.
Я использовал Win32 OpenSSL v0.9.8r Light, так как есть некоторые дебаты о выпуске v1. [Клиентские инструменты в порядке, вам не нужно полное распространение]
Убедитесь, что вы установили библиотеки DLL, чтобы они были видны в пути Windows. Или;
- каталог windows / system32
- каталог приложений
- или добавьте местоположение dll в переменную окружения пути
Это работает для меня с Qt v4.6.2