环境:windows10 64位
工具链:MinGW64
IDE:CLion
MinGW编译openssl 有两种方式获取到动态库:
本篇文章主要讲解的是MinGW编译openssl的方法,如果是MSVC编译openssl可以参考我同学的文章
MSVC编译openssl
参考:https://blog.csdn.net/qq_39311335/article/details/116919598
下载安装msys2
推荐使用清华的镜像网站下载,速度快。
官网网址(不推荐):https://www.msys2.org
清华镜像(推荐):https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/
下面我是使用清华的镜像下载截图。
选择一个版本下载,我选择的是20220503的版本。
更改msys2的下载源
刚下载的msys2
使用的默认源在国外,所以下载东西非常慢,需要自己更改成国内的源
- 打开安装目录下的
\etc\pacman.d
可以看到下图中红框中的三个文件
- 修改
mirrorlist.msys
用记事本打开mirrorlist.msys
,在文本的最上面加上这句代码
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
- 修改
mirrorlist.mingw32
同理使用记事本打开,在最上面增加
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
- 修改mirrorlist.mingw64
同理在最上面增加
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
- 在安装路径下找到
msys.exe
打开,执行下面指令更新
pacman -Syu
在环境包中找openssl动态库
-
打开msys2的安装路径,
-
安装mingw所需的包
如果是要64位动态库,在mingw64.exe
执行下面指令
pacman -S mingw-w64-x86_64-pkgconf
如果是要32位动态库,在mingw32.exe
执行下面指令
pacman -S mingw-w64-i686-pkgconf
- 查找动态库
- 64位动态库:在mingw64\bin下找
libcrypto-1_1.dl
l和libssl-1_1.dll
- 32位动态库:在mingw32\bin下找
libcrypto-1_1.dl
l和libssl-1_1.dll
编译源码
配置msys2的MinGW环境
这取决于你要编译几位的OpenSSL,如果你要编译32位的就安装mingw32
位的环境 即可。二者步骤一致只是指令不同,下面我用32位的记录。
- 在安装目录下打开
mingw32.exe
。(64位的就打开mingw64.exe
)
- 打开后先用
pacman -Syu
指令,更新一下下载列表(防止还是用旧的源) - 下载C++编译所需文件。
位数 | 指令 | exe |
---|---|---|
64位 | pacman -S mingw-w64-x86_64-toolchain | 在mingw64.exe下打开输入的指令 |
32位 | pacman -S mingw-w64-i686-toolchain | 在mingw32.exe下打开输入的指令 |
这里我是安装mingw32的环境(mingw64也是差不多),编译openssl
只需要下图的 3(mingw的gcc) 和 15(mingw的make) 即可
5. 安装gcc
和make
(此处mingw64和mingw32一致)
安装gcc
pacman -S gcc
安装make
pacman -S gcc
下载OpenSSL源码
- 下载路径:https://github.com/openssl/openssl
- 下载源码后将源码解压到 msys\home\用户名
如下图所示,我将解压的openssl-1.1.1o的文件夹放到了home下的用户文件夹中
编译源码生成动态库
- 打开
mingw32.exe
(如果要编译64位就打开ming64.exe
) - 进入openssl的文件夹
cd openssl-1.1.1o/
- 配置编译环境
./config -shared
解释: -shared表示生成动态库
- 编译(等待个几分钟)
make
编译过程中会有很多警告,无视即可,然后在\openssl-1.1.1o\test
就能找到两个动态库(libcrypto-1_1.dl
l和libssl-1_1.dll
)