我是Qt的新手,我做了一些谷歌,但找不到足够详细的答案。
我需要在基于qmake的Qt项目中使用OpenSSL。我如何下载/安装/链接它,以便我可以只做一个include语句并在我的代码中使用它的函数?
答案 0 :(得分:18)
假设Windows,您可以从Win32 OpenSSL Installation Project page下载其安装。您可以选择一个用于开发64位窗口或用于32位窗口。只需运行设置,一切都将轻松完成。默认安装目录为: C:\ OpenSSL-Win32
在 Qt creator 中,如果您想将库链接到项目,只需将此行添加到.pro文件(项目文件)中:
LIBS += -L/path/to -llibname
所以这就是我们为这个库做的事情(例如链接ubsec.lib)
LIBS += -LC:/OpenSSL-Win32/lib -lubsec
注意 -L 和 -l </ strong>。See this question。您甚至不需要在库名的末尾指定.lib。
对于包含.h文件,请将此行添加到.pro文件中:
INCLUDEPATH += C:/OpenSSL-Win32/include
之后你可以包含这样的文件:
#include <openssl/aes.h>
答案 1 :(得分:4)
乔治在Unable to use AES files of OpenSSL in Qt Creator:
如果是在Linux上,请将以下内容添加到.pro文件中:
PKGCONFIG += openssl
它将处理所有必需的头路径,编译 - 链接器选项和 图书馆。
并确保您已安装openssl-devel软件包 系统
答案 2 :(得分:4)
我正在使用Qt5.5开发Win 7(32),而这些答案中没有一个适用于我
所以我只想分享最终有效的解决方案:
1.我在C:\ OpenSSL-Win32中安装了OpenSSL
2.在c:\ OpenSSL-Win32 \ MinGW中有两个库文件:
libeay32.a & ssleay32.a
我已将每个人的副本重新命名为扩展名:
libeay32.a -> libeay32.lib & ssleay32.a -> ssleay32.lib
我用这种方式链接我的.pro文件中的库:
LIBS += -LC:/OpenSSL-Win32/lib/MinGW -llibeay32
LIBS += -LC:/OpenSSL-Win32/lib/MinGW -lssleay32
INCLUDEPATH += C:/OpenSSL-Win32/include
5.我从C:\ OpenSSL-Win32复制了3个.dll文件:
(libeay32.dll,libssl32.dll,ssleay32.dll)
到我的build / debug文件夹:
(构建-XXXXX-Desktop_Qt_5_5_1_MSVC2012_32bit-调试/调试)
我希望这会有所帮助。
答案 3 :(得分:0)
如果您使用的是win7,并且您的qt版本是mingw,并且您从http://slproweb.com/products/Win32OpenSSL.html安装openssl,请确保您的lib应该在OpenSSL-Win32 / lib / MinGW中,并添加&#34; LIB&#34;在libeay32.a和ssleay32.a之前。
答案 4 :(得分:0)
如果您使用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)
Linux 系统上需要 ${CMAKE_DL_LIBS}
以避免链接时错误,例如&#34; dlopen symbol not found ...&#34;。在Windows上,它变空了。
如果openssl
安装目录不是标准配置,那么您应该OPENSSL_ROOT_DIR
向cmake
提供,例如在set(OPENSSL_ROOT_DIR "C:/msys64/mingw32")
之前添加include
或将-DOPENSSL_ROOT_DIR:PATH=C:/msys64/mingw32
指定为cmake
可执行文件(在&#34;项目&#34; - &gt;&#34;构建设置&#34; - &gt;&#34; CMake&#34;标签)。