当前位置: 代码迷 >> QT开发 >> QT中能否调用openssl的库?该怎么解决
  详细解决方案

QT中能否调用openssl的库?该怎么解决

热度:142   发布时间:2016-04-25 05:03:15.0
QT中能否调用openssl的库?
我想写一个调用新浪微博的程序,但是由于新浪微博的API(https://api.weibo.com/oauth2/access_token)是https连接的,所以需要使用ssl。可惜我编译qt 4.8的时候没有编译openssl的库。
我想问,我现在下载了openssl网站上已经编译好的dll(libssl32.dll,ssleay32.dll,libeay32.dll),有什么办法让qt动态调用这些库吗?
我试了在.pro文件中加入这些库,但好像没用。具体现象是QNetworkAccessManager 访问https时候一直没有response返回。

------解决方案--------------------
1、只有dll文件就动态载入这些库,如果有lib文件可以静态载入;
2、https访问必须同过ssl通道才行,你只是把库加入到项目中而没有具体调用相应的函数,也是没有效果的。
------解决方案--------------------
编译库,费时也费力。
------解决方案--------------------
zhu_xz兄说的对呀!需要编译Qt库。

我记得三年前我做过这个,这是我当时写的一个手册,不过可能已经过时了:

1. 安装OpenSSL
首先确保安装了ActivePerl

解压openssl-0.9.8k.tar.gz到C:\OpenSSL

在命令行中执行以下命令:

> cd C:\OpenSSL
> ms\mingw32

编译结束后,将在C:\OpenSSL\outinc中生成Windows平台的头文件,在C:\OpenSSL\out中生成库文件。

2. 之后编译Qt
在configure中加入参数 -openssl -I C:\OpenSSL\outinc -L C:\OpenSSL\out
然后执行make

3. 编译完成后把C:\OpenSSL\libeay32.dll、C:\OpenSSL\libssl32.dll拷贝到Qt的bin目录中,并且把libssl32.dll改名为ssleay32.dll。


------解决方案--------------------
探讨

因为蛋疼的我想用gcc4.6编译的qt库。 = =
  相关解决方案