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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM