QT如何动态链接openssl库 <QT windows mingw版>

公司后台使用的是AES进行加解密的,是在Linux上的。加密之后解密很不方便,就想用QT实现一个界面AES加解密的小工具,但是QT本身是不支持openssl的,需要链接外部库。

想要QT可以正确链接oepnssl库,需要做如下事情

一、下载openssl压缩包

我下载的版是openssl-1.0.2k.tar.gz

路径:http://download.csdn.net/download/jackiehu2010/9845848

二、下载MSYS并正确安装perl和minGW

路径:http://download.csdn.net/download/chaojianhu/10199386

1.安装MSYS

点击安装可执行文件,一直下一步,没什么好说的。

2.安装perl

同MSYS,没什么说的

3.minGw

使用QT自带的minGW

4.设置MSYS的环境变量

设置环境变量,将perl和minGW的路径加到MSYS的PATH变量中

export PATH=$PATH:/你的perl安装路径/bin

export PATH=$PATH:/你的QT自带minGW路径/bin

三、MSYS环境下编译openssl动态库

1.将openssl的tar包拷贝到MSYS的安装路径下面

2.在MSYS环境中使用tar指令解压文件

命令 tar -zxvf openssl-xxxx

cd openssl-xxxx

3.动态编译openssl

./Configure  --preifx=$PWD/dist shared mingw

make && make install

等待一会就编译好了,在dist的lib文件夹下有我们所需要的库文件,在dist/bin下有两个dll文件也很重要,一个是libssl32.dll,一个是eayssl32.dll。

四、修改QT工程pro文件

在QT项目的pro文件中增加如下语句

INCLUDEPATH += /你的openssl解压路径/include

LIBAS += /你的openssl编译路径/lib/libssl.dll.a    \

/你的openssl编译路径/lib/libcrypto.dll.a

使用openssl  API编写程序,编译链接没问题,运行时崩溃,别紧张,没找到动态库,将libssl32.dll、eayssl32.dll加到QT安装的bin目录下。

至此,问题解决

猜你喜欢

转载自blog.csdn.net/yu1665090104/article/details/79038761
今日推荐