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
