Openssl 编译

首页 / C++ / 正文

获取中...

从业以来遇到Openssl能避免则避,不能避直接用成品,因为当时了解过他编译实在太麻烦了,但是时过境迁,之前很麻烦的库已经变的越来越简单了(如cef,curl之类),于是抽了个时间重新编译了下Openssl

1.openssl源码下载

本人项目是基于为win32环境的x86编译,环境都是安装的win32版本,如是win64版本请另行下载各自对应的版本

下载地址:https://www.openssl.org/source/
选择最新版本就好了
lrzy4pr8.png

2.编译环境准备
openssl官网下载的源码中没找到现成的dll和lib文件,在这里我选择自己编译生成想要的版本库,解压如下
lrzy5ilj.png

1)安装Perl
搜索网络上有的下载的是ActiveState Perl,但是极其麻烦,我弄半天也没下载成功,在此所以推荐下载草莓Perl
下载地址: Windows版本Strawberry Perl
下载好自己的版本,我这里下的是32位的,如下
lrzy5sdc.png
一般下载安装后会自动添加perl的三个环境变量:
lrzy5zb8.png

建议安装后还是检查一下,万一没有则手动添加即可。
cmd命令行输入perl -v查看是否安装成功:
lrzy6dcm.png
2)安装NASM
地址:https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/
lrzy6w7v.png

下载完运行这个exe安装即可,注意这里安装完也要对环境变量进行检查,我就是没检查,然后后面在编译openssl中编译到一半,说我编译环境错误,当时头痛的很,后面全部重新安装了一遍,手动添加了这个环境变量。

lrzy77yo.png

这里变量为你安装NASM的路径,鼠标右击nasm属性查看路径如下:
lrzy7e7w.png
3)编译openssl
以上已经安装好所需的环境就可以进行编译了
windows所有程序打开vs2017开发人员命令提示应用,我的开发环境是vs2017,vs你们使用自己的版本即可
lrzy83qh.png

在此cmd窗口中进入到刚刚下载解压的openssl源码路径下

命令行输入 perl Configure VC-WIN32 --shared no-asm --debug --prefix=C:\Common-Test\openSSL --openssldir=C:\Common-Test\SSL

具体参数配置在openssl源码解压的目录下有个 INSTALL 文件可以看到
32位:VC-WIN32
64位:VC-WIN64A
编译生成动态库Dll:--shared (不生成则使用no-shared,默认不生成)
不使用汇编代码:no-asm
Debug:--debug
Release:–-release(默认)
最后安装的目录:–prefix=C:\Common-Test\openSSL
一些配置说明文件存放目录:–openssldir=\Common-Test\SSL

你可以自己新建一个build文件夹专门来放这些文件

然后依次输入

nmake
nmake test
nmake install
nmake clean  //这里是清除生成的多余文件

等待三个命令运行完成。

注意:中途万一编译失败,请重新安装以上环境并检查环境变量是否存在

在我们的输出安装目录下可以看到以下四个文件夹
lrzycc4h.png
静态库lib文件在lib目录下,头文件在include目录下
动态库dll文件在bin目录下,在启动运行的时候会用到。这个放在程序启动的那个目录就行了

打赏
评论区
头像