Как включить OpenSSL в проект Qt

Я новичок в Qt, я сделал несколько Googleing и не могу найти достаточно подробный ответ.

Мне нужно использовать OpenSSL в моем Qt-проекте на основе qmake. Как мне загрузить / установить / связать его, чтобы я мог просто сделать оператор include и использовать его функции в моем коде?

Предполагая Windows, вы можете загрузить его установку с Win32 OpenSSL Installation Project . Вы можете выбрать один для разработки 64-битных окон или для 32-разрядных. Просто запустите настройку, и все будет сделано легко. Установочный каталог по умолчанию: C: \ OpenSSL-Win32
В создателе Qt , если вы хотите связать библиотеку с вашим проектом, вы можете просто добавить эту строку в ваш .pro-файл (файл проекта):

LIBS += -L/path/to -llibname 

Итак, вот что мы делаем для этой библиотеки (например, для ссылки ubsec.lib)

 LIBS += -LC:/OpenSSL-Win32/lib -lubsec 

Обратите внимание на -L и -l . См. Этот вопрос . Вам даже не нужно указывать .lib в конце имени библиотеки.

Для включения файлов .h добавьте эту строку в ваш .pro-файл:

 INCLUDEPATH += C:/OpenSSL-Win32/include 

после этого вы можете включить такой файл:

 #include  

От Джорджа в Невозможно использовать AES-файлы OpenSSL в Qt Creator :

Если это в Linux, добавьте следующее в свой файл .pro:

 PKGCONFIG += openssl 

Он будет обрабатывать все необходимые пути заголовков, параметры компиляции-компоновщика и библиотеки.

И убедитесь, что в вашей системе установлен пакет openssl-devel.

Я работал над Win 7 (32) с Qt5.5, и не ответы на эти ответы работали для меня.
Поэтому я просто хочу поделиться решением, которое наконец-то сработало:

1. У меня установлен OpenSSL в C: \ OpenSSL-Win32
2. В c: \ OpenSSL-Win32 \ MinGW есть два файла библиотеки:
libeay32.a & ssleay32.a
3. Я сделал копию каждого из них, переименованного в расширения:
libeay32.a -> libeay32.lib & ssleay32.a -> ssleay32.lib
4. Я связал библиотеки в моем файле .pro так:
LIBS += -LC:/OpenSSL-Win32/lib/MinGW -llibeay32
LIBS += -LC:/OpenSSL-Win32/lib/MinGW -lssleay32
INCLUDEPATH += C:/OpenSSL-Win32/include
5. Я скопировал файлы 3.dll с C: \ OpenSSL-Win32:
(libeay32.dll, libssl32.dll, ssleay32.dll)
в мою папку для создания / отладки:
(Сборка-XXXXX-Desktop_Qt_5_5_1_MSVC2012_32bit-Debug / отладки)

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

если вы на win7, а ваша qt-версия – mingw, и вы устанавливаете openssl из http://slproweb.com/products/Win32OpenSSL.html , убедитесь, что ваша библиотека должна быть в OpenSSL-Win32 / lib / MinGW и добавить «lib» перед libeay32.a и ssleay32.a.

Если вы используете cmake как систему сборки для своего проекта, вы можете включить FindOpenSSL.cmake следующим образом:

 #set(OPENSSL_USE_STATIC_LIBS TRUE) # if you want to use static libssl.a and libcrypto.a include(FindOpenSSL) #add_executable(${PROJECT_NAME} ...) or add_library(${PROJECT_NAME} ...) target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_DL_LIBS} OpenSSL::SSL OpenSSL::Crypto) в #set(OPENSSL_USE_STATIC_LIBS TRUE) # if you want to use static libssl.a and libcrypto.a include(FindOpenSSL) #add_executable(${PROJECT_NAME} ...) or add_library(${PROJECT_NAME} ...) target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_DL_LIBS} OpenSSL::SSL OpenSSL::Crypto) 

${CMAKE_DL_LIBS} системах Linux требуется ${CMAKE_DL_LIBS} чтобы избежать ошибок времени соединения, таких как «символ dlopen не найден …». На windowsх он стал пустым.

Если каталог установки openssl не является стандартным, вы должны предоставить OPENSSL_ROOT_DIR для cmake , например, чтобы добавить set(OPENSSL_ROOT_DIR "C:/msys64/mingw32") перед include или указать -DOPENSSL_ROOT_DIR:PATH=C:/msys64/mingw32 to cmake исполняемый файл (в «Проекты» -> «Настройки сборки» -> вкладка «CMake»).

  • Как изменить строку в QString?
  • Как сделать столбец в QTableWidget только для чтения?
  • Qt Creator нуждается в компиляторе для сборки. Настройка компилятора в настройках набора
  • Как добавить текст в QPlainTextEdit без добавления новой строки и сохранить прокрутку внизу?
  • Как сделать виджет Qt невидимым без изменения позиции других виджетов Qt?
  • Как интегрировать OpenCV в проект Android Qt Creator
  • Как создать Qt 4.8 / 5.2 статически в VS2012, используя статическую среду выполнения MSVC, с поддержкой Windows XP?
  • Масштабирование изображения (KeepAspectRatioByExpanding) через OpenGL
  • Добавьте определение к qmake С значением?
  • Внедрение проекта Qt через CMake
  • Что делает макрос Q_OBJECT? Почему все объекты Qt нуждаются в этом макросе?
  • Давайте будем гением компьютера.