1. 程式人生 > 實用技巧 >windows平臺編譯openssl(64位MT版本)

windows平臺編譯openssl(64位MT版本)

1 準備工作

1.1 下載openssl1.1.0g

地址: https://github.com/openssl/openssl/tree/OpenSSL_1_1_0g

1.2 安裝perl

我使用的strawberry 版本號v5.28.2

地址:http://strawberryperl.com/

安裝好後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