下載並安裝 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:\software\openssl-1.1.1d
進入OpenSSL目錄
D:\software\openssl-1.1.1d\openssl-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:\Perl64\site\lib\ActivePerl\Config.pm
用記事本開啟這個檔案,然後把sub _warn的內部實現全部註釋掉。如下:
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";
}
構建完成後,測試一下:
nmake test
正常情況下,應該所有的測試用例都是ok或skipped。
最後執行:
nmake install