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

Другие вопросы по тегам