準備工作:
下載OpenSSL源碼 官方網站下載OpenSSL:http://www.openssl.org/source/
安裝ActivePerl 官方網站下載ActivePerl:http://www.activestate.com/activeperl/
編譯步驟:
1. 使用VS2005下的Visual Studio 2005 Command Prompt進入控制檯模式
開始菜單->所有程序->Microsoft->Microsoft Visual Studio 2005->Visual Studio Tools->Visual Studio 2005 Command Prompt
2. 進入openssl源碼的目錄
命令行鍵入 cd D:/openssl-0.9.8l //把路徑替換成自己的源碼路徑
3. 命令行鍵入 perl configure VC-WIN32
如果沒安裝ActivePerl將無法執行
4. 命令行鍵入 ms/do_ms
這中間我遇到了兩處報告%OSVERSION% is not defined at util/pl/VC-32.pl line 57.和Compilation failed in require at util/mk1mf.pl line 151. 好像可以忽略,反正我最後還是編譯成功了。
命令行信息
D:/openssl-0.9.8l>ms/do_ms
D:/openssl-0.9.8l>perl util/mkfiles.pl 1>MINFO
D:/openssl-0.9.8l>perl util/mk1mf.pl no-asm VC-WIN32 1>ms/nt.mak
D:/openssl-0.9.8l>perl util/mk1mf.pl dll no-asm VC-WIN32 1>ms/ntdll.mak
D:/openssl-0.9.8l>perl util/mk1mf.pl no-asm VC-CE 1>ms/ce.mak
%OSVERSION% is not defined at util/pl/VC-32.pl line 57.
Compilation failed in require at util/mk1mf.pl line 151.
D:/openssl-0.9.8l>perl util/mk1mf.pl dll no-asm VC-CE 1>ms/cedll.mak
%OSVERSION% is not defined at util/pl/VC-32.pl line 57.
Compilation failed in require at util/mk1mf.pl line 151.
D:/openssl-0.9.8l>perl util/mkdef.pl 32 libeay 1>ms/libeay32.def
D:/openssl-0.9.8l>perl util/mkdef.pl 32 ssleay 1>ms/ssleay32.def
5. 編譯分兩種情況,生成靜態庫和動態庫
(1) 如果是編譯OpenSSL動態庫,則在命令行鍵入 nmake -f ms/ntdll.mak
編譯成功課在文件夾out32dll裏面查看輸出的文件,包括應用程序的exe文件、lib文件、dll文件。
(2) 如果是編譯OpenSSL靜態庫,則在命令行鍵入 nmake -f ms/nt.mak
編譯成功課在文件夾out32裏面查看輸出的文件,包括應用程序的exe文件、lib文件。
到此編譯已經完成,將OpenSSL下的include文件夾、lib文件、dll文件考出,使用的時候包含進去就行了。
另外還有幾個命令可能會用到:
測試OpenSSL動態庫:nmake -f ms/ntdll.mak test
測試OpenSSL靜態庫:nmake -f ms/nt.mak test
安裝OpenSSL動態庫:nmake -f ms/ntdll.mak install
安裝OpenSSL靜態庫:nmake -f ms/nt.mak install
清除上次OpenSSL動態庫的編譯,以便重新編譯:nmake -f ms/ntdll.mak clean
清除上次OpenSSL靜態庫的編譯,以便重新編譯:nmake -f ms/nt.mak clean
編譯OpenSSL可能遇到的問題:
1. 啓用Windows控制檯(運行cmd)進行編譯,執行第5步nmake -f ms/ntdll.mak或nmake -f ms/nt.mak會報錯:
'nmake' 不是內部或外部命令,也不是可運行的程序或批處理文件。
2. 啓用SDK Command Prompt進行編譯,執行第5步nmake -f ms/ntdll.mak或nmake -f ms/nt.mak會報錯:
ms/uplink.c(11) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
NMAKE : fatal error U1077: '"D:/Program Files/Microsoft Visual Studio 8/VC/bin/cl.EXE"' : return code '0x2' Stop.
上述問題解決方案:
1. 嚴格按第1步操作,啓動Visual Studio 2005 Command Prompt進行編譯,這個會自動配置環境。
2. 在執行第5步nmake -f ms/ntdll.mak前,進入D:/Program Files/Microsoft Visual Studio 8/VC/bin路徑下(替換成自己的VC安裝路徑),命令行鍵入vcvars32,運行vcvars32.bat。然後再回到OpenSSL源碼的目錄(D:/openssl-0.9.8l),再執行第5步nmake -f ms/ntdll.mak或nmake -f ms/nt.mak
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zhejiang9/archive/2010/02/03/5286511.aspx