Qt之Windows Server 2012 R2不支持openssl

        发现默认情况下服务器Windous Server 2012系统不支持openssl,就算你把已经编译好的库编译好放进去也不行,因为系统就缺少了系统的补丁。

        一开始的想的解决办法是:怀疑是因为Windows 10编译的库文件Windous Server 2012系统中不支持,所以先下载openssl的源码,在服务器上重新编译,然后根据编译源码的方法在网上搜索,网上大部分的办法下载编译openssl的源码,编译的具体步骤忘记了,反正首先需要两个工具,perl和nmake,这里可太费事了

        其中perl还好说,nmake还要安装一般都是安装Visual Studio来自带安装,然后Visual Studio安装怎么都安装不好使,总是报错。

        当时脑子真的短路了,这么尝试下去发现终究是弯路,这些一点软用都没有,这些的本质不也是编译->生成库文件,我现在库文件都有了只是在当前系统不支持,何必多走弯路。

解决办法

        openssl不支持的原因主要就是系统有的补丁没有安装。

        原文链接:windows2012r2安装openssl

        Windows Server 2012 R2 补丁包下载地址:依次安装最后重启即可

        美中不足的地方就是这些库到底起什么作用并没有搞清楚,就是解决了问题而已,Windows这方面的资料还是太少了,在官网搜索也没有得到相应的解释。下次有时间应该还是会重新翻回来看看这些补丁的作用。

        我之前在windows日志报错中,安装过补丁KB2919442和KB2919355,但是结果还是不行,这次下面的全部安装后成功

1、clearcompressionflag.exe

https://download.microsoft.com/download/D/B/1/DB1F29FC-316D-481E-B435-1654BA185DCF/clearcompressionflag.exe

2、KB2919442

1、http://download.windowsupdate.com/c/msdownload/update/software/crup/2014/02/windows8.1-kb2919442-x64_f97d8290d9d75d96f163095c4cb05e1b9f6986e0.msu

2、https://download.microsoft.com/download/D/6/0/D60ED3E0-93A5-4505-8F6A-8D0A5DA16C8A/Windows8.1-KB2919442-x64.msu

3、KB2919355

http://download.windowsupdate.com/d/msdownload/update/software/crup/2014/02/windows8.1-kb2919355-x64_e6f4da4d33564419065a7370865faacf9b40ff72.msu

4、KB2932046

http://download.windowsupdate.com/d/msdownload/update/software/crup/2014/02/windows8.1-kb2932046-x64_6aee5fda6e2a6729d1fbae6eac08693acd70d985.msu

5、KB2959977

https://download.microsoft.com/download/9/C/7/9C7A638F-D1E3-40F4-A755-64899A18B411/Windows8.1-KB2959977-x64.msu

 6、KB2937592

http://download.windowsupdate.com/c/msdownload/update/software/crup/2014/02/windows8.1-kb2937592-x64_4abc0a39c9e500c0fbe9c41282169c92315cafc2.msu

7、KB2938439

http://download.windowsupdate.com/c/msdownload/update/software/crup/2014/03/windows8.1-kb2938439-x64_3ed1574369e36b11f37af41aa3a875a115a3eac1.msu

8、KB2934018

https://download.microsoft.com/download/D/B/1/DB1F29FC-316D-481E-B435-1654BA185DCF/Windows8.1-KB2934018-x64.msu

9、dotnet-hosting-6.0.1-win.exe

https://download.visualstudio.microsoft.com/download/pr/b69fc347-c3c8-49bc-b452-dc89a1efdf7b/ebac64c8271dab3b9b1e87c72ef47374/dotnet-hosting-6.0.1-win.exe

oepnssl库

1、先获取当前版本

输出当前QT支持的openSSL版本

 qDebug()<<"QSslSocket="<<QSslSocket::sslLibraryBuildVersionString();
 //判断系统是否支持OpenSSL
 //如果此平台支持SSL,则返回true; 否则,返回false。 如果平台不支持SSL,则套接字将在连接阶段失败。不支持就需要看下面的解决方法。
 qDebug() << "OpenSSL支持情况:" << QSslSocket::supportsSsl();

我的当前版本是

QSslSocket= "OpenSSL 1.1.1b  26 Feb 2019"

所以我等会下载的就会是OpenSSL v1.1.1的版本 

7.2、下载对应的版本
openssl下载地址:

http://slproweb.com/products/Win32OpenSSL.html

        根据自己使用的QT编译器时32位还是64位,对应下载安装包。将下载的安装包进行安装,安装到第二个选项时,选择安装到指定的/bin目录下。安装之后,找到安装目录下的两个文件(其中我的是libcrypto-1_1.dll 和libssl-1_1.dll),拷贝到QT编译器目录下即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值