Windows XP SP3下編譯安裝openssl-1.1.0b


軟件需要:

openssl-1.1.0b

visual studio 2010(cn_visual_studio_2010_ultimate_x86_dvd_532347.iso)

perl:ActivePerl-5.22.1.2201

nasm-2.12.03rc1-win32

環境准備:

1.從官網下載ActivePerl-5.22.1.2201並一路確認安裝到硬盤中

2.打開命令提示符,第一次輸入cpan會默認下載mingw,等待數分鍾以后他會默認解壓安裝。

3.待mingw自動安裝以后將會出現 cpan>提示符,在里面分別輸入

install Test::More

install Text::Template

4.下載nasm-2.12.03rc1-win32並解壓到d:\develop\2.12.03rc1\

在系統環境變量PATH添加D:\develop\nasm-2.12.03rc1;

以上准備工作做好了

編譯:

編譯過程中用過VC6/VC7均編譯失敗,后來網上找到原因:

openssl-1.0.0a必須用vs2008編譯,VC6+nasm32是無法編譯了,因為openssl-1.0.0a要求cl.exe的版本比較高,vc6無法編譯,所以用vs2008編譯。

本文選用了2010

vc7報錯:

async_win.obj : error LNK2019: unresolved external symbol _ConvertFiberToThread referenced in function _async_local_cleanup
async_win.obj : error LNK2019: unresolved external symbol _ConvertThreadToFiber referenced in function _async_fibre_init_dispatcher
async.obj : error LNK2019: unresolved external symbol _DeleteFiber referenced in function _async_job_free
async.obj : error LNK2019: unresolved external symbol _SwitchToFiber referenced in function _async_start_func
async.obj : error LNK2019: unresolved external symbol _CreateFiber referenced in function _ASYNC_init_thread
b_print.obj : error LNK2019: unresolved external symbol __ftol2 referenced in function _roundv
b_print.obj : error LNK2019: unresolved external symbol __aulldvrm referenced in function _fmtint
bss_dgram.obj : error LNK2019: unresolved external symbol __aulldvrm referenced in function _dgram_ctrl
ct_prn.obj : error LNK2001: unresolved external symbol __aulldvrm
threads_win.obj : error LNK2019: unresolved external symbol _InitializeCriticalS
ectionAndSpinCount referenced in function _CRYPTO_THREAD_lock_new
libcrypto-1_1.dll : fatal error LNK1120: 8 unresolved externals
NMAKE : fatal error U1077: 'link' : return code '0x1'
Stop.

vc6報錯:

crypto\ec\curve25519.c(897) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(898) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3298) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3299) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3300) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3301) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3302) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3303) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3304) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3305) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3306) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data
crypto\ec\curve25519.c(3307) : warning C4244: '=' : conversion from '__int64 ' to 'int ', possible loss of data

Stop.

以下是完整的編譯安裝步驟:

perl Configure VC-WIN32 zlib,zlib-dynamic --with-zlib-include=F:\zlib-1.2.8 --with-zlib-lib=F:\zlib-1.2.8\zdll.lib
nmake
nmake test
nmake install

成功以下將默認把openssl安裝到C:\Program Files\OpenSSL,編譯成品支持zlib/gzip解壓縮,編程時請把zlib1.dll拷貝到程序目錄

zlib-dynamic
Like "zlib", but has OpenSSL load the zlib library
dynamically when needed. This is only supported on systems
where loading of shared libraries is supported.

 

按照官方INSTALL所說zlib將會按需動態調用。

編程成功還沒測試, 其中zlib是用vc6編譯,openssl用vc10編譯。

成品下載

 


免責聲明!

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



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