OpenSSL在windows环境下编译

OpenSSL在windows环境的编译

编译平台:

  1. Windows10 x64
  2. Visual Studio 2017
  3. OpenSSL代码版本:OpenSSL_1_1_1e
  4. ActivePerl版本:ActivePerl-5.26.3.0000-MSWin32-x64

编译后的OpenSSL可运行平台:

  1. windows 10 x64
  2. windows 7 x64
  3. windows 7 x32

第1步:安装ActivePerl

安装过程所有选项默认即可,完毕后会自动添加环境变量。

如果没有自动添加到环境变量,那就需要手动添加“C:\Perl64\site\bin”、“C:\Perl64\bin”和“C:\Perl64\lib” 三项到系统环境变量PATH中。

确定安装成功的方法是启动命令行,输入perl -version,能够出现版本

OpenSSL在windows环境下编译_第1张图片

修改配置文件"C:\Perl64\lib\ActivePerl\Config.pm"。否则再执行配置时,会报错

将其400行位置左右,修改如下,重点关注注释行

# Prevent calling Win32::Console::DESTROY on a STDOUT handle
#my $console;
sub _warn {
#    my($msg) = @_;
#   unless (-t STDOUT) {
#	print "\n$msg\n";
#	return;
#   }
#    require Win32::Console;
#    unless ($console) {
#	$console = Win32::Console->new(Win32::Console::STD_OUTPUT_HANDLE());
#    }
#   my($col,undef) = $console->Size;
#    print "\n";
#    my $attr = $console->Attr;
#    $console->Attr($Win32::Console::FG_RED | $Win32::Console::BG_WHITE);
#    for (split(/\n/, "$msg")) {
#	$_ .= " " while length() < $col-1;
#	print "$_\n";
#    }
#   $console->Attr($attr);
#    print "\n";
}

第2步:下载OpenSSL代码

可以通过git clone下载最新代码,也可以在github上下载Releases · openssl/openssl · GitHub版。

git clone https:\\github.com\openssl\openssl.git

第3步:编译前的配置

打开VS命令行,这里选择的是“VS 2017的 x64_x86 交叉工具命令提示符”,注意选错了可能配置或编译失败。

OpenSSL在windows环境下编译_第2张图片

进入openssl源码目录,我这里是“C:/openssl-master/openssl-master”

cd C:/openssl-master/openssl-master

输入命令

Perl Configure VC-WIN32 no-asm --prefix=C:/OpenSSL1

–prefix=后面的路径是openssl编译后的安装路径

这里实际是通过Perl脚本以及配置参数,生成编译所需的makefile,如果环境没问题,此步应该很快结束。

OpenSSL在windows环境下编译_第3张图片

如果第1步中没有修改Config.pm文件,可能会出现失败,提示如下:

OpenSSL在windows环境下编译_第4张图片

第4步:编译

nmake

严格按照上述步骤进行编译,那么编译是可以正常通过的。若出现error,可能是选择的VS命令行不正确导致的。

可选步骤:测试openssl,可跳过。

nmake test

根据机器性能不同,耗时长短不一定,本人编译耗时大概20多分钟。
第5步:安装

nmake install

此时可以到刚刚配置的–prefix=后面的路径“C:/OpenSSL1”,看到已经安装到该路径中
目录内有:bin,html,include,lib四个目录

第5步:配置环境变量

将上述“C:/OpenSSL1”路径内的四个子目录,都添加到系统环境变量的PATH中即可。

编译所需资源链接:

https://download.csdn.net/download/u010333084/12257998

你可能感兴趣的:(OpenSSL在windows环境下编译)