Windows環境下使用VS2005編譯OpenSSL

準備工作:
下載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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章