Отсутствует поддержка Qt SSL - PullRequest
4 голосов
/ 18 августа 2010

Я только что скачал Qt (LGPL - Qt SDK для Windows), и когда я запускаю некоторые демоверсии, они жалуются на то, что Qt не имеет SSL.
Как я могу получить Qt SDK с включенным SSL? Мне действительно нужно скомпилировать его из исходного кода, чтобы получить поддержку SSL? Почему он отсутствует в версии, которую я скачал?

Ответы [ 3 ]

9 голосов
/ 25 августа 2010

Чтобы включить SSL для Qt, вы сначала должны загрузить пакет OpenSSL. Для этого я предлагаю скачать двоичные файлы для OpenSSL, которые доступны здесь. Установите двоичные файлы и прочитайте справку, прилагаемую к ним.

Эта часть предназначена для установки двоичных файлов OpenSSL под Microsoft Visual C ++ (текст взят из справки двоичных файлов)

OpenSSL предназначен для простой сборки под Microsoft Visual C ++. Тем не мение, требование, чтобы вы пошли и получили 25 МБ Win98 DDK и последний установлен пакет обновления (SP5 - 120 МБ) может оказаться препятствием для некоторых люди (особенно те, у кого модемы).

Итак, установка Win32 OpenSSL бинарные файлы довольно просты процесс (похож на Borland C ++ Строитель процесса).

Первое, что нужно сделать (при условии установка по умолчанию 'C: \ OpenSSL') это перейти к «C: \ OpenSSL \ lib \ VC» и скопируйте все файлы в ваш Visual C ++ 'lib' каталог. Этот каталог иногда находится в несколько загадочное местоположение, такое как 'C: \ Program Файлы \ Microsoft Visual Studio \ VC98 \ lib 'или' C: \ Program Файлы \ Microsoft Visual C ++ \ lib '.

Затем скопируйте все в 'C: \ OpenSSL \ include' каталог к ​​вашему Каталог «include» для Visual C ++.

Вот и все! Вы готовы пойти написать OpenSSL-совместимый код!

После установки правильных параметров вы готовы настроить Qt для включения поддержки SSL. Запустите configure.exe -debug-and-release -webkit -openssl -I C: \ openssl \ Include -L C: \ openssl \ Lib , а затем nmake. Вы включили поддержку SSL. Не забудьте поместить Qt + = network в ваш файл .pro.

Это сработало для меня и моих коллег, должно работать и для вас:).

9 голосов
/ 29 сентября 2012

@ user261882 ответ только частично правильный. Он прав, говоря, что Qt не поставляется с поддержкой SSL, и вам нужно загрузить OpenSSL библиотеки .

Однако процесс связывания после этого намного проще, вам не нужно перестраивать Qt после загрузки библиотек SSL или возиться с Microsoft Visual. Qt облегчает вам работу.

Все, что вам нужно сделать после загрузки библиотек SSL, - это убедиться, что Qt может найти, где расположены эти библиотеки openSSL. Если во время загрузки вы выбираете опцию для копирования DLL-файлов openSSL в систему Windows каталог, Qt автоматически найдет двоичные файлы openSSL в этом каталоге, поскольку системный каталог Windows всегда ищется Windows.

Если вы не хотите устанавливать библиотеки openSSL в системный каталог Windows, это нормально, вам просто нужно сообщить Qt, где расположены библиотеки openSSL DLL. Вы можете сделать это несколькими способами ... одним из возможных решений является установка добавления местоположения библиотеки openSSL DLL в системную переменную PATH. Другое простое решение - скопировать DLL-файлы openSSL в каталог, в котором находится ваш исполняемый файл. Этот каталог гарантированно будет также найден.

Простая проверка, которую вы можете запустить позже, чтобы проверить, сработала ли она, вызывает статическую функцию QSslSocket :: supportSsl () , если эта функция возвращает true, Qt нашла двоичные файлы openSSL, которые Вы скачали. (Конечно, убедитесь, что вы добавили Qt += network в ваш файл .pro перед запуском этого теста)

Протестировано с двоичными файлами Qt 4.8.3, с использованием Qt Creator 2.5.2 и библиотек Win32 OpenSSL v1.0.1c

Надеюсь, это сэкономит всем время. Делая это таким образом, вам не нужно искать файлы Visual Studio, и это намного проще.

3 голосов
/ 19 августа 2010

Из Документация Qt ,

При сборке Qt из исходного кода система конфигурации проверяет наличие заголовка openssl / opensslv.h, предоставленного пакетами исходного кода или пакета разработчикаOpenSSL.Из-за ограничений на импорт и экспорт в некоторых частях мира мы не можем снабдить OpenSSL Toolkit пакетами Qt.Разработчики, желающие использовать связь SSL в своих развернутых приложениях, должны либо обеспечить, чтобы их пользователи установили соответствующие библиотеки , либо они должны проконсультироваться с квалифицированным юристом, чтобы убедиться, что приложения, использующие код из проекта OpenSSL, правильно сертифицированыдля импорта и экспорта в соответствующие регионы мира.

Если вы уже установили OpenSSL, попробуйте указать

Qt += network в файле .pro ..

Надеюсь, это поможет ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...