OpenSSL在Windows和Linux下的编译
具体参见https://wiki.openssl.org/index.php/Compilation_and_Installation
Windows下的编译
第一步:下载ActivePerl (https://www.activestate.com/products/perl/) ,安装ActivePerl,默认安装路径在C:\Perl64。打开命令提示符,定位到 C:\Perl64\eg 目录,执行 perl example.pl,若提示 Hello from ActivePerl! 则说明 Perl 安装成功。(注意: 这里只能下载64位系统安装的版本)
注:可能报错“Can’t locate Win32/Console.pm”这里可以下载我编译好的版本
https://platform.activestate.com/DonaldXY/ActivePerl-5.26/distributions
或者直接在cmd执行以下代码
powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/_pdli01/install-latest.ps1'))) -c'state activate --default DonaldXY/ActivePerl-5.26'"
第二步:下载并安装 nasm汇编器(http://www.nasm.us/, ),默认安装在C:\Users\lenovo\AppData\Local\bin\NASM,将此路径加入Path环境变量,这个可以下载32位或者64位都没所谓
第三步 执行perl Configure VC-WIN32 –prefix=c:\openssl\win32,prefix参数指的是后面执行nmake install命令把OpenSSL安装到哪个目录。
64位 编译 就改成VC-WIN64A 静态编译加no-shared
如:perl Configure no-shared VC-WIN64A –prefix=c:\openssl\win32
第四步:编译 (使用VS2019 的命令行,64位要使用64位的)
nmake
nmake test
nmake install
重新编译需要执行清理
nmake clean
很多博客编译OPENSSL 的方法在1.1.0以后的版本都不行,具体出现的问题是
It looks like you don’t have either nmake.exe or dmake.exe on your PATH, so you will not be able to execute the commands from a Makefile. You can install dmake.exe with the Perl Package Manager by running: ppm install dmake
下面才是老版本和新版本不同的编译办法
都是打开VS自己的命令行,不要打开WINDOWS的命令行
老版本(1.1.0以前的版本是)是
执行ms\do_nasm
执行nmake -f ms\ntdll.mak,此处大约需要几分钟,如果一切正常,会在out32dll目录下生成很多dll和exe文件。
执行nmake -f ms\ntdll.mak test,如果全部显示OK,说明编译正确。
执行nmake -f ms\ntdll.mak install,所有头文件和lib文件就都被拷贝到前面prefix指定的目录了。
新版本(1.1.0以后的版本是)
nmake
nmake test
nmake install
Linux下的编译
去官网下载源码,具体命令以1.1.1g为例
wget https://www.openssl.org/source/openssl-1.1.1g.tar
tar -xzf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config --prefix=/usr/local/openssl
./config -t
make
make install