【自记录】VS2022编译OpenSSL1.0.2u

因为突然要编译一个老工程,老工程里面用到了OpenSSL 1.0.x。
于是官网下载了最后一个1.0.x版本1.0.2u。

1 下载安装Perl

Perl官网下载即可。
使用vcpkg直接安装也可以,比前者更方便

vcpkg install perl
#根据实际路径调整
set PATH=D:\vcpkg\downloads\tools\perl\5.32.1.1\perl\bin;%PATH%

2 编译

本来想打开Developer Command Prompt后简单的运行

perl Configure VC-WIN32
ms\do_ms.bat

结果意外的收到这个报错

tmp32\sha1-586.asm(1576) : error A2070:invalid instruction operands

do_ms.bat中本来明确的声明了no-asm,怎么会还在编译asm文件呢?
搜索看到了这个帖子,有人给出了答案:
https://github.com/openssl/openssl/issues/169

  1. 新版本的VS已不支持no-asm模式
  2. 使用nasm可跳过该问题。

可以在官网下载最新版本,或使用vcpkg安装。我直接用之前编译Qt时自动下载的,也能用。直接放在openssl的源码目录下即可。

根据正确答案进行改造,一并输出动态库和静态库的release/debug版本

perl Configure VC-WIN32
perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl nasm debug VC-WIN32 >ms\nt_dbg.mak
perl util\mk1mf.pl nasm dll VC-WIN32 >ms\ntdll.mak
perl util\mk1mf.pl nasm debug dll VC-WIN32 >ms\ntdll_dbg.mak
perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak

perl util\mkdef.pl 32 libeay > ms\libeay32.def
perl util\mkdef.pl 32 ssleay > ms\ssleay32.def
nmake -f ms\nt.mak
nmake -f ms\nt_dbg.mak
nmake -f ms\ntdll.mak
nmake -f ms\ntdll_dbg.mak

#下面的可以不做,如果做了,默认会在你驱动器的根目录下,例如e:\usr\local下
nmake -f ms\nt.mak install
nmake -f ms\nt_dbg.mak install
nmake -f ms\ntdll.mak install
nmake -f ms\ntdll_dbg.mak install
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenSSL是一个开源的加密和解密工具库,用于实现SSL/TLS协议,提供安全的通信和数据传输。OpenSSL 1.0.2r是OpenSSL库的一个特定版本。 编译OpenSSL 1.0.2r需要以下步骤: 1. 下载OpenSSL 1.0.2r源代码:在OpenSSL官方网站或源代码仓库下载OpenSSL 1.0.2r的源代码压缩包。 2. 解压源代码:将下载的源代码压缩包解压到合适的目录中。 3. 进入源代码目录:在命令行或终端中使用cd命令进入解压后的源代码目录。 4. 配置编译选项:运行配置命令,根据实际需求选择和配置编译选项。例如,可以选择编译静态库还是共享库,选择CPU架构等。 5. 执行编译命令:运行编译命令开始编译源代码。编译过程可能需要一些时间,请耐心等待。 6. 安装编译好的版本:编译完成后,可以运行安装命令将编译好的版本安装到系统中。安装命令通常是make install。 7. 验证安装:安装完成后,可以运行openssl命令验证安装是否成功。 编译好的OpenSSL 1.0.2r版本可以提供各种加密和解密算法的功能,包括对称加密算法、非对称加密算法以及数字签名算法。可以使用这个版本的OpenSSL库来实现数据的加密、解密和安全通信,保护敏感信息的传输和存储安全。 请注意,编译OpenSSL库需要一定的编译知识和经验,在编译过程中可能会遇到各种问题,需要仔细查看编译文档和错误信息,并做出相应的调整和修复。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值