GmSSL Build with VS2017


使用背景:     

    最近研究GB35114, 有關於sip協議部分,exosip的已經編譯過,由於gb3511中采用的是國密算法,因此這里記錄一下GMSSL在windows下的編譯過程以及遇到的錯誤

詳細GMSSL的介紹見:http://gmssl.org/

 

根據文檔說明,步驟如下:

在Window下的編譯和安裝

安裝ActivePerl和Visual Studio,以管理員身份打開Visual Studio Tools下的Developer Command Prompt控制台並運行:

perl Configure VC-WIN32
nmake
nmake install

環境准備:
   1. ActivePerl: ActivePerl-5.28.1.0000-MSWin32-x64-432e1938.exe
   2. NASM: nasm-2.14.03rc2-installer-x64.exe

 

32位編譯:

第一步便遇到了問題:  Can't locate Win32/Console.pm in @INC (you may need to install the Win32::Console module)

 

解決: 自然想到是perl缺少Win32:Console module

網上搜索Win32:Console module perl module,其中看到perl的安裝, cpan方式

perl -MCPAN -e shell

install Win32:Console

 

對照操作后,重新再來,發現dmake錯誤,又無法識別,繼續搜索dmake...

繼續各種查找,各種嘗試,最終能真正work的方法是使用如下鏈接的site替換perl安裝下的site目錄。。。。。。

https://download.csdn.net/download/u011234288/10346624

 

解決此問題后

nmake

nmake install

就一路暢通

 


注意,管理員權限安裝




64位編譯:

     由於文檔上面介紹默認是32位的編譯安裝,64位可能會有問題,嘗試一下,如果有問題再提交作者,

config看看64位的 

perl Configure VC-WIN64A / VC-WIN64I 

貌似都有相同的錯誤,無法編譯通過。。。。。。
 
           
         

        IF EXIST libcrypto-1_1-x64.dll.manifest DEL /F /Q libcrypto-1_1-x64.dll.manifest

        link /nologo /debug /dll  /implib:libcrypto.lib /out:libcrypto-1_1-x64.dll /def:libcrypto-1_1-x64.def @C:\Users\leehm\AppData\Local\Temp\nm7B43.tmp || (DEL /Q libcrypto.* libcrypto-1_1-x64.* && EXIT 1)

crypto\aes\aes_cfb.obj : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'

NMAKE : fatal error U1077: 'link' : return code '0x1'

Stop.

 

解決:

切換使用vs2017所帶的command tool, 之前編譯32位使用的是:Developer Command Prompt for vs2017

看看錯誤貌似是x86與x64沖突, 切換到2017的x64 tool,  x64 Native Tools Command Prompt for vs2017,

 

重新 拉一份干凈的代碼,

perl Configure VC-WIN64A

namke, 

nmake install 

 

 

OK,至此32/64都已編譯成功。

 

 

更多關於GmSSL的issue:

https://github.com/guanzhi/GmSSL/issues


免責聲明!

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



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