如何将OpenSSL的在Qt工程(How to Include OpenSSL in a Qt pr

2019-07-19 04:53发布

我是新来的Qt,我已经做了一些Googleing并不能找到一个详细的答案足够。

我需要在我基础QMAKE QT间期项目使用OpenSSL。 我怎么去下载/安装/连接,所以我可以做一个包括声明,在我的代码中使用它的功能是什么?

Answer 1:

假设Windows中,你可以从它的安装Win32的OpenSSL的安装工程页面 。 您可以选择一个64位Windows开发或32位。 只要运行安装程序,一切都将轻松完成。 默认安装目录为:C:\的OpenSSL的Win32
Qt Creator中,如果再要一个库链接到你的项目,你可以只是这一行添加到您的.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 <openssl/aes.h>


Answer 2:

我工作在Win 7(32)Qt5.5,而这些答案非为我工作。
所以,我想和大家分享的是终于研究出一个解决方案:

1.我已经安装在C的OpenSSL:\的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.我选自C 3个复制的.dll文件:\ OpenSSL的-的Win32:
(的libeay32.dll,libssl32.dll,ssleay32.dll)
我的编译/ debug文件夹:
(构建-XXXXX-Desktop_Qt_5_5_1_MSVC2012_32bit-调试/调试)

我希望这将有所帮助。



Answer 3:

从乔治在无法使用OpenSSL的AES文件的Qt Creator中 :

如果这是在Linux上,添加以下到您的.pro文件:

 PKGCONFIG += openssl 

它会处理所有必要的头路径,编译链接器选项和库。

并确保你已经安装在系统中的OpenSSL-devel包。



Answer 4:

如果你是win7的,和你的Qt版本是MinGW的,和u从将OpenSSL安装http://slproweb.com/products/Win32OpenSSL.html ,请确保您的lib应该在的OpenSSL的Win32 / lib目录/ MinGW的,并添加一个“LIB”前的libeay32.a和ssleay32.a。



Answer 5:

如果您使用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)

${CMAKE_DL_LIBS}需要在Linux系统上,以避免类似链接时错误“找不到dlopen的象征......”。 在Windows上,成为空。

如果openssl安装目录不是标准,那么你应该提供OPENSSL_ROOT_DIRcmake ,如以加set(OPENSSL_ROOT_DIR "C:/msys64/mingw32")之前include或指定-DOPENSSL_ROOT_DIR:PATH=C:/msys64/mingw32cmake可执行文件(在 “项目” - > “生成设置” - > “CMake的” 标签)。



文章来源: How to Include OpenSSL in a Qt project