下载并安装 NASM-2.15.05:
https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-installer-x64.exe
下载并安装 ActivePerl-5.28:
https://www.activestate.com/products/perl/downloads/thank-you/?dl=https://cli-msi.s3.amazonaws.com/ActivePerl-5.28.msi
下载并安装 VS2017:
https://visualstudio.microsoft.com/zh-hans/vs/community/
免费的Community版就可以了,现在都是下载一个很小的下载器,然后在线安装,时间有点长,把C++的项目勾上。
下载OpenSSL-1.1.1d:
https://www.openssl.org/source/old/1.1.1/openssl-1.1.1d.tar.gz
解压缩,比如:D:softwareopenssl-1.1.1d
进入OpenSSL目录
D:softwareopenssl-1.1.1dopenssl-1.1.1d>
项目配置:
perl Configure VC-WIN64A no-asm --prefix="D:\software\openssl-1.1.1d_build64"
这里的CPU类型只能选择VC-WIN64A,如果选择其它平台,会配置失败。比如,VC-WIN64I就导致如下错误:
OpenSSL: Nmake fatal error U1077: 'ias' : return code '0x1'
开始编译:
nmake
这个过程比较漫长。
在windows10上编译时,通常会报错,提示这个文件的400行有错误:
C:Perl64sitelibActivePerlConfig.pm
用记事本打开这个文件,然后把sub _warn的内部实现全部注释掉。如下:
sub _warn {
# my($msg) = @_;
# unless (-t STDOUT) {
# print "
$msg
";
# return;
# }
# require Win32::Console;
# unless ($console) {
# $console = Win32::Console->new(Win32::Console::STD_OUTPUT_HANDLE());
# }
# my($col,undef) = $console->Size;
# print "
";
# my $attr = $console->Attr;
# $console->Attr($Win32::Console::FG_RED | $Win32::Console::BG_WHITE);
# for (split(/
/, "$msg")) {
# $_ .= " " while length() < $col-1;
# print "$_
";
# }
# $console->Attr($attr);
# print "
";
}
构建完成后,测试一下:
nmake test
正常情况下,应该所有的测试用例都是ok或skipped。
最后执行:
nmake install