基于Windows手动编译openssl和直接安装openssl

零、环境

win10-64位 + VS2019

一、手动编译

前言:对于一般的开发人员而言,在 openssl 上下载已经编译好的 openssl 库,然后直接拿去用即可,,不用手动编译,{见下文直接安装}。。。对于一些开发人员,可能需要修改openssl源码,那么编译它势在必行。。。

1、安装perl

https://platform.activestate.com/ActiveState-Projects/ActiveState-Perl-5.36.0

在这里插入图片描述

两种方法都没能成功。。第一种下载后会得到一个 state-remote-installer.exe,然后安装时会在命令行中执行,,命令行中输入Y会继续下载,,,下载极慢,,放弃。。
第二种执行命令直接报错如下所示。
在这里插入图片描述
总的来说,通过官网给定的方式去倒腾,都不好搞。。。
于是,走第三方去下载,,http://www.xz7.com/downinfo/43699.html

下载速度非常之快。。
安装完毕后,会自动添加至环境变量。
此时打开cmd,输入 perl -v,输出如下,表示安装成功。
在这里插入图片描述

2、 下载安装nasm
https://www.nasm.us/
在这里插入图片描述
在这里插入图片描述

此处下载2.16.01稳定版本。
安装完毕,将安装目录添加至系统环境变量中,输入nasm -v,输出以下表示安装成功。

在这里插入图片描述

3、下载安装openssl
openssl官网
在这里插入图片描述
此处下载1.1.1b.tar.gz版本。

4、开始编译
以管理员身份运行vs2019-64bit命令行工具,因为此处要编译成64位的库。
然后切换到解压后的目录中。
在这里插入图片描述

perl Configure VC-WIN64A  --prefix=D:\openssl111b\openssl-1.1.1b\bin

注意 ,–prefix必须为绝对路径, 否则报错。
开始执行命令,结果报错如下:

D:\openssl111b\openssl-1.1.1b>perl Configure VC-WIN64A  --prefix=D:\openssl111b\openssl-1.1.1b\bin
Configuring OpenSSL version 1.1.1b (0x1010102fL) for VC-WIN64A
Using os-specific seed configuration
Can't locate Win32/Console.pm in @INC (you may need to install the Win32::Console module) (@INC contains: D:/openssl111b/openssl-1.1.1b/util/perl D:/openssl111b/perlInstall/site/lib D:/openssl111b/perlInstall/lib) at D:/openssl111b/perlInstall/site/lib/ActivePerl/Config.pm line 400.
Compilation failed in require at D:/openssl111b/perlInstall/site/lib/ExtUtils/MakeMaker.pm line 9.
BEGIN failed--compilation aborted at D:/openssl111b/perlInstall/site/lib/ExtUtils/MakeMaker.pm line 9.
Compilation failed in require at D:/openssl111b/perlInstall/site/lib/IPC/Cmd.pm line 235.

需要修改perl安装目录下的文件。
D:/openssl111b/perlInstall/site/lib/ActivePerl/Config.pm
ps:若不知道自己的安装位置,可借助Everything进行全局搜索。。。
在这里插入图片描述

找到后修改此文件,注释395-413行左右的代码,如下所示:
在这里插入图片描述
此时再次执行上述命令,openssl的配置已经结束,makefile已经生成,如下所示。
在这里插入图片描述
然后执行 nmake ,等待编译完成,,,
紧接着执行name install,此时将安装到之前配置时指定的bin目录,,,
安装完毕,去bin目录查看安装后的及结果。。。,如下所示,已经分门别类的安装好了。。。

在这里插入图片描述

二、直接安装

现在直接下载openssl的exe版本,版本号是:Win64 OpenSSL v1.1.1v Light
https://slproweb.com/products/Win32OpenSSL.html

在这里插入图片描述
在这里插入图片描述
安装中会有以下提示,默认即可。
在这里插入图片描述
实际我最关心的就是这两个库了。因为https建立连接的时候需要用到它。

三、顺便解决一个Qt报错

程序中会访问https://50.50.1.118服务。采用https协议,需要openssl支持。。
编译套件是:Qt5.13-MSVC2017-64bit。

    qDebug() << QSslSocket::supportsSsl();qDebug()<<"QSslSocket="<<QSslSocket::sslLibraryBuildVersionString();

在这里插入图片描述
报错:qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed。
很明显,此时并不支持ssl,就是缺少openssl的库。

在这里插入图片描述

实际上就是缺少上面的两个库。

此时,运行QT程序,,一切正常,,不再报错了。。

在这里插入图片描述
如果还是不行,建议直接将这两个库拷贝到 E:\Qt5.13.1\install\5.13.1\msvc2017_64\bin目录下。。。
当然程序打包的时候也别忘了要拷过去。

四、参考博客

OpenSSL之六:OpenSSL源码编译安装
Windows 下编译 OpenSSL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/56659.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[webpack] 处理样式 (二)

文章目录 1.介绍2.处理 Css 资源2.1 导入包2.2 功能配置2.3 添加 Css 资源 3.处理 Less 资源3.1 导入包3.2 功能配置3.3 添加 Less 资源 4.处理 Sass 和 Scss 资源4.1 导入包4.2 配置4.3 添加 Sass 资源4.4 运行webpack 5.处理 Styl 资源5.1 导入包5.2 配置5.3 添加 Styl 资源5…

Qt--动态链接库的创建和使用

写在前面 在Qt的实际开发中&#xff0c;免不了使用和创建动态链接库&#xff0c;因此熟悉Qt中动态链接库的创建和使用对后续的库开发或使用是非常用必要的。 在之前的文章https://blog.csdn.net/SNAKEpc12138/article/details/126189926?spm1001.2014.3001.5501中已经对导入…

机器学习笔记之优化算法(八)简单认识Wolfe Condition的收敛性证明

机器学习笔记之优化算法——简单认识Wolfe Condition收敛性证明 引言回顾&#xff1a; Wolfe \text{Wolfe} Wolfe准则准备工作推导条件介绍推导结论介绍 关于 Wolfe \text{Wolfe} Wolfe准则收敛性证明的推导过程 引言 上一节介绍了非精确搜索方法—— Wolfe \text{Wolfe} Wolf…

快速修复应用程序中的问题的利器—— Android热修复

热修复技术在Android开发中扮演着重要的角色&#xff0c;它可以帮助开发者在不需要重新发布应用程序的情况下修复已经上线的应用程序中的bug或者添加新的功能。 一、热修复是什么&#xff1f; 热修复&#xff08;HotFix&#xff09;是一种在运行时修复应用程序中的问题的技术…

前端js--旋转幻灯片

效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><link rel"stylesheet" href"…

上位机是什么?有什么实际用途?

上位机是指控制、监测或管理下位机的计算机系统&#xff0c;也可以称为主机。它通常用于工业自动化、机器人控制、数据采集和处理等领域。在工业自动化中&#xff0c;上位机负责向下位机下发指令并获取反馈信息&#xff0c;以控制生产流程。在机器人控制中&#xff0c;上位机负…

ubuntu服务器配置ftp服务

需求&#xff1a;配置ftp服务用于在windows电脑上直接浏览、下载、上传ubuntu服务器上的文件&#xff0c;用于文件共享&#xff0c;方便实用 效果&#xff1a;用户打开windows资源管理器后输入ftp://xxx.xxx.xxx.xxx &#xff08;公网IP地址&#xff09;后&#xff0c;即可浏览…

带你了解—使用Ubuntu系统,公网环境下SSH远程树莓派

公网环境下Ubuntu系统SSH远程树莓派 文章目录 公网环境下Ubuntu系统SSH远程树莓派前言 1. 安装cpolar客户端2. 安装完成后输入指令3. ubuntu系统输入命令 前言 树莓派作为低功耗、小型化的硬件设备&#xff0c;其功能和运算能力并未过度缩水&#xff0c;在不少场景中&#xff…

vscode中无法使用git解决方案

1 首先查看git安装目录 where git 2 找到bash.exe 的路径 比如&#xff1a;C:/Users/Wangzd/AppData/Local/Programs/Git/bin/bash 3 找到vscode的配置项setting.json 4 添加 "terminal.integrated.shell.windowns": "C:/Users/Wangzd/AppData/Local/Pr…

【Hystrix技术指南】(5)Command创建和执行实现

创建流程 构建HystrixCommand或者HystrixObservableCommand对象 *使用Hystrix的第一步是创建一个HystrixCommand或者HystrixObservableCommand对象来表示你需要发给依赖服务的请求。 若只期望依赖服务每次返回单一的回应&#xff0c;按如下方式构造一个HystrixCommand即可&a…

Redis未授权访问漏洞

Redis未授权访问漏洞 一、未授权访问漏洞概述、二、Redis未授权访问特征三、Redis常用命令四、Redis历史漏洞4.1、Redis未授权访问4.2、Redis主从复制RCE 五、Reids未授权访问利用5.1、写webshell5.2、写定时任务反弹shell 一、未授权访问漏洞概述、 未授权访问漏洞可以理解为需…

秋招打卡011(20230807)

文章目录 前言一、今天学习了什么&#xff1f;二、算法----》单调栈1、介绍2、题目 总结 前言 提示&#xff1a;这里为每天自己的学习内容心情总结&#xff1b; Learn By Doing&#xff0c;Now or Never&#xff0c;Writing is organized thinking. 今天拿到了上周面试的结果…