1 准備工作
1.1 下載openssl1.1.0g
地址: https://github.com/openssl/openssl/tree/OpenSSL_1_1_0g
1.2 安裝perl
我使用的strawberry 版本號v5.28.2
安裝好后perl -v可以查看版本號
安裝完strawberry后打開的cmd才能使用perl命令(新增加的環境變量對已經打開的cmd不生效)
1.3 修改Config.pm
修改C:\Perl64\site\lib\ActivePerl下的Config.pm的"sub _warn"過程,修改后代碼如下:
#
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 編譯
2.1 配置
打開 適用於VS2015的x64本機工具命令提示
cd到openssl目錄cd到openssl目錄 cd g:\openssl-1.1.0g
執行 perl Configure VC-WIN64A no-asm --prefix=g:\build\openssl\win64a
VC-WIN64A表示生成x64的Release庫。debug-VC-WIN64A、VC-WIN32、debug-VC-WIN32分別表示生成x64的Debug庫、x86的Release和Debug庫。
no-asm 不使用匯編加速編譯
g:\build\openssl\win64a輸出路徑
注意:此時makefile文件中默認使用/MD,如要使用/MT,可搜索修改makefile文件中的"/MD"為"/MT"后,再繼續后續步驟。
2.2 編譯
執行nmake
執行nmake test
若報錯:執行 nmake /I test 就能夠編譯通過了(雖然還是會報 error),但是編譯出來的可執行文件是可以使用的
執行nmake install
同一個目錄下編譯不同版本(win32|64|release|debug)時需要先nmake clean