文章目录
在Win10环境下使用MinGW64编译OpenSSL-3.0.3
编译过程参考 openssl 在github上托管的代码仓库,地址: Notes for Windows platforms
简单记录一下编译过程,需要准备如下环境
⭐️ 安装 MSYS2 环境,下载地址
⭐️ Perl运行环境,至少使用 5.10.0 及以上版本。建议使用 MSYS2 命令行工具安装,安装命令: pacman -S perl
一开始使用 MSYS2 pacman 工具的时候遇到很多问题,“文件 /var/cache/pacman/pkg/bash-5.1.008-1-i686.pkg.tar.zst 已损坏(无效或已失效)”、“pacman命令不可用”、“错误:mingw32: 密钥 “5F944B027F7FE2091985AA2EFA11531AA0AA7F57” 未知” 等等,总之处理这个pacman命令就花了一下午时间,其中比较重要的一个配置是 /etc/pacman.conf 文件的 SigLevel 属性,注意该配置有两个地方: 一个全局配置,一个针对 archlinuxcn 作用域的配置,需要将两处都配置为 Never 或 Optional TrustAll。网上搜到的很多是对 archlinuxcn 的配置,而全局配置值默认为 Required,因此 pacman 安装软件时每次进行签名验证,每次失败,导致没法儿安装软件。其他配置就不记录了
⭐️ make工具,使用 MSYS2 命令工具安装: pacman -S make
不过这个工具我没使用 MSYS2 命令工具安装,我使用的是本机MinGW64编译环境中自带的 make 工具,想让 MSYS2 环境能识别本机已安装的软件需要在配置一个环境变量 MSYS2_PATH_TYPE,如下图。这个环境变量表示让 MSYS2 继承系统自带的环境
进行编译安装
1. 生成 Makefile 文件
./Configure mingw64
该过程花费时间较短,一般几十秒钟就执行完了
2. 执行 make 编译指令生成 obj 文件
该过程花费较长时间,大约半个小时到一小时,可能跟电脑配置也有关系,我的笔记本是 i7 CPU + 24G 内存
3. 执行 make install 安装指令
将编译后的二进制文件(可执行文件、静态库、动态库)、man手册拷贝到 prefix 目录,因为在生成 Makefile 时没有指定 prefix,默认是安装到 MSYS2 家目录下 /usr/local
这一步我安装失败了,不过仅仅只是 man 手册安装失败了,二进制文件都安装成功了,失败是由于 /doc/man1/tsget.pod 文件引起的,提示错误好像是说文件某一行没有正确的换行符 end of file 什么的,没有截图忘了
总结
例如:以上就是今天编译 OpenSSL-3.0.3 的过程,挺开心的,记录一下。分享给有兴趣学习密码技术的同学,欢迎指正