系统:win10_x64
IDE:vs2017
一、安装Perl
1.下载地址:https://www.activestate.com/activeperl
版本:ActivePerl-5.24.3.2404-MSWin32-x64-404865.exe
2.安装
二、安装NASM
1.下载地址:https://www.nasm.us/
版本:nasm-2.14rc15-win64.zip
2.把解压目录添加到环境变量PATH里
三、编译安装OpenSSL
1.下载地址:https://github.com/openssl/openssl,找Release版下载
版本:openssl-OpenSSL_1_1_1.zip
2.解压
3.启用编译64位或者32位版本的环境
用vs工具中"适用于 VS 2017 的 x64 本机工具命令提示"编译64位版本
用vs工具中“适用于 VS 2017 的 x86 本机工具命令提示”编译32位版本
注意:要以管理员身份启动,否则后面执行nmake install 时有些文件无法安装到c盘里。
4.用Perl生成makefile
生成64位版本命令:
perl Configure VC-WIN64A zlib --with-zlib-include=zlib头文件目录 --with-zlib-lib=zlib动态库目录 --prefix=安装目录
生成32位版本命令:
perl Configure VC-WIN32 zlib --with-zlib-include=zlib头文件目录 --with-zlib-lib=zlib动态库目录 --prefix=安装目录
备注:
(1)想详细了解命令参数的请查看"INSTALL"文件,windows下OpenSSL_1.0和1.1版本的编译方法和生成文件名都不同,难保以后版本还会有变,关键是要看前面文件的内容。
(2)64位版本有两个选项,VC-WIN64A和VC-WIN64I,前者是用于x86-64架构的CPU,后者用于Intel安腾(Itanium)处理器
(3)此处用的是zlib的静态库,用动态库的话,生成命令要将zlib改成zlib-dynamic(可查看INSTALL文件)。经过测试,不建议用动态库。原因如下:
<1>--with-zlib-lib此处在windows平台表示文件名,而且此处写的文件名不能包含后缀lib,zlib的dll文件必须与lib放一个目录,否则nmake test无法通过。在linux平台下,此处表示的是zlib动态库所在的文件夹。(具体查看INSTALL文件)
<2>如果选用zlib动态库,在测试生成文件openssl.exe时,它只会在上面指定的目录寻找zlib动态库,不会在本目录或其它系统目录寻找,因此不方便安装到第三方电脑上。(暂时未测试直接调用openssl生成的动态库是如何连接zlib的)
5.编译、测试、安装
两个版本剩下的命令都是:
nmake
nmake test
nmake install