windows環境下VS2013編譯openSSL


 

openssl版本:1.0.2h

編譯器:MSVC (VS2013)

 

需要准備工具:perl。

windows環境的perl下載請戳這里:http://www.activestate.com/activeperl

 

 

打開VS2013的x86 Native command prompt(編譯的是32位版本),並切換到ssl的解壓根路徑:

perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32           #release版本用VC-WIN32 debug版本用debug-VC-WIN32

ms\do_ms.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

 

運行之上命令,結果出錯:

ssembling: tmp32\sha1-586.asm

tmp32\sha1-586.asm(1432) : error A2070:invalid instruction operands

tmp32\sha1-586.asm(1576) : error A2070:invalid instruction operands

 

然后原因追查到這里:https://github.com/openssl/openssl/issues/169

 

看了之后才明白,原因是原來do_ms.bat  編譯匯編是用的MASM編譯器,MASM編譯sha1-586.asm文件的時候出錯了。issue上面有人說說不要用masm編譯,換成NASM編譯,

然后我再從NASM的官網下載了NASM,配上環境變量,運行以下命令:

 

perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32           #release版本用VC-WIN32 debug版本用debug-VC-WIN32

ms\do_nasm.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

 

然后就能編譯成功了。

 

references: 

http://developer.covenanteyes.com/building-openssl-for-visual-studio/

https://github.com/openssl/openssl/issues/169

http://stackoverflow.com/questions/12850607/initializing-big-numbers-with-constants-in-masm

 


免責聲明!

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



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