QT解决无法访问https缺少OpenSSL问题

首先你可以运行这段代码,查询你QT版本所需要的OpenSSL版本是多少,因为不同QT版本所需OpenSSL版本不一样

qDebug() << QSslSocket::supportsSsl() << QSslSocket::sslLibraryBuildVersionString() << QSslSocket::sslLibraryVersionString();

//qt5.13.0运行结果
false "OpenSSL 1.1.1b  26 Feb 2019" ""

找到自己对应的版本后去OpenSSL官网下载源码自己编译或者去找别人编译好的

自己编译首先下载安装

1、openssl
https://www.openssl.org

2、Perl
http://strawberryperl.com/

用VS2017编译x64打开适用于VS2017的x64本机工具命令提示

首先CD到openssl解压目录
//x86 release
VC-WIN32
//x64 release
VC-WIN64A
//x86 debug
debug-VC-WIN32
//x64 debug
debug-VC-WIN64A
后面的H:\opensll是编译好输出目录
第一步、 Perl Configure VC-WIN64A no-asm --prefix="H:\openssl"  

第二步、nmake //编译

第三步、nmake test  //执行编译完成测试 可以跳过

第四步、nmake  install  将编译好的文件拷贝到 H:\openssl

第五步、把生成的libeay32.dll和ssleay32.dll拷贝到D:\Qt\5.13.0\msvc2017_64\bin目录就好了,编译好的发布软件目录下也要带上这2个文件

注意高版本的文件是libssl-1_1-x64.dll和libcrypto-1_1-x64.dll

版权说明:
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

觉得文章有用就请我吃包辣条吧

微信扫一扫打赏