Qt 5.13.2 qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

发送数据的时候,程序输出这个

 

qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

 

 

网上很多说法是libeay32.dll和ssleay32.dll复制到可执行文件里,这个只是解决在Qt Creator下编译运行可以,单独打包不运行的问题。

 

我遇到的问题是在QT5.7下Qt Creator可以的,但是装了Qt 5.13.2(5.14.0) 在Qt Creator下编译运行不行。

qDebug看下

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

看到这个说明OK

true "OpenSSL 1.1.1b 26 Feb 2019" "OpenSSL 1.1.1c 28 May 2019"

看到如下

false "OpenSSL 1.1.1b 26 Feb 2019"

您遇到问题和我一样,以下可能适合你

 

解决办法是根据自己的构建环境,把\Qt\Qt5.13.2\Tools\QtCreator\bin libssl-1_1.dll和libcrypto-1_1.dll两个文件 复制到 相应的\Qt\Qt5.13.2\5.13.2\mingw73_32\bin目录下,也可以复制到可执行文件中。

 

那么问题又来了,64位的怎么办,办法是有的,

去网站https://slproweb.com/products/Win32OpenSSL.html

下载相应的版本,我下载的是如下版本Win64OpenSSL-1_1_1d.exe

 

https://slproweb.com/download/Win64OpenSSL-1_1_1d.exe

 

安装过程中选择库文件目录,我选择的安装到软件目录

最后捐助不要勾选任何就可以了

 

把\OpenSSL-Win64\bin libcrypto-1_1-x64.dll和libssl-1_1-x64.dlll两个文件 复制到 相应的\Qt\Qt5.13.2\5.13.2\mingw73_64\bin目录下

 

最后发布软件的时候,也需要把这两个文件复制到可执行文件同目录下。

 

附上已经打包好的文件,免安装了,解压使用,直接拿去使用吧。

 

 

 

参考:https://blog.csdn.net/lanxiaziyi/article/details/98760827

www.mamicode.com/info-detail-2895440.html

http://www.luyixian.cn/news_show_252661.aspx

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值