windows 为qt5.7.1 安装openssl

本人使用qt5.7.1+msvc2015写一个https的客户端程序,但是用到解析https协议时,报出如下错误

qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error

后来发现是,系统中没有openssl导致。
openssl 大部分为下载源码自己编译,然后调用dll库,也有exe安装版本,但是网站要钱
源码地址:https://www.openssl.org/
安装版软件地址:http://slproweb.com/products/Win32OpenSSL.html

我使用的是这个版本:https://www.openssl.org/source/openssl-1.0.2m.tar.gz
按照以下博客说明安装完成:https://blog.csdn.net/liang19890820/article/details/51658574
csdn博客上所说,大部分都对。
只是我nmake命令的时候,一直缺少h文件,知道是环境变量的问题,本来想通过将h文件拷贝到此目录下解决,但估计lib环境也没有,这么做麻烦,遂放弃
后来通过使用vs2015 自带的命令提示符cmd软件,在这里运行能够继承vs的所有环境

接下来将openssl安装目录中的bin下:libeay32.dll ssleay32.dll 拷贝到qt目录中有Qt5Network.dll & Qt5Networkd.dll 目录中即可
(我实际拷贝的是:bin/libeay32.dll, bin/ssleay32.dll lib/libeay.lib lib/ssyeay.lib)没试验过不带lib是否可行

最后值得一说的是,qt5.7.1中是自带 libeay32.dll &ssleay32.dll 的 在目录:C:\Qt\Qt5.7.1\Tools\QtCreator\bin
但我将这两个dll拷贝到Qt5Network.dll目录下时,无法工作,所以我时默认的“自带的不工作ssl库不工作”这一结论的。




猜你喜欢

转载自www.cnblogs.com/braveCloud/p/9819056.html
今日推荐