2010-12-03 3 views
4

Моего приложение бросает следующие ошибки на окнах: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++ Redistributables и OpenSSL, но я понятия не имею, как сказать Qt для динамического связывания с openSSL. Я использую версию LGPL для двоичных файлов Qt и Qt Creator для Windows 7 (сборка Linux работает отлично)

ответ

4

По какой-то причине Qt не очень хорошо справлялся с DLL, загружаемыми с Win32 OpenSSL Installation Project , Поскольку я заметил, что приложение работает гладко на машинах с установленным Tortoise Svn, я просто скопировал dll, предоставленные с помощью Tortoise, и это очень сработало для меня.

Я знаю, это странно, что эти DLL-файлы работали, а те из проекта установки Win32 OpenSSL не выполнялись, но на данный момент копирование DLL из установочной папки Tortoise Svn решило мою проблему.

+0

которые являются этими DLL-файлами или вы просто скопируете их все? – shackra 2015-02-03 22:12:38

4

Загрузите последние версии OpenSSL для предварительной сборки из этого website.

Я использовал Win32 OpenSSL v0.9.8r Light, так как есть некоторые споры о выпуске v1. [Клиентские инструменты в порядке, вам не нужен полный дистрибутив]

Убедитесь, что вы устанавливаете DLL, чтобы они были видны на пути к окну. Или;

  • каталог Windows/system32
  • каталог приложений
  • или добавить расположение библиотек DLL на пути Enviroment переменной

Это работает для меня с Qt v4.6.2