轉自:
最近研究GB35114, 有關於sip協議部分,exosip的已經編譯過,由於gb3511中採用的是國密算法,因此這裏記錄一下GMSSL在windows下的編譯過程以及遇到的錯誤, 32位已經ok,64位暫時不行,準備將錯誤提交作者。。。。
詳細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.