解壓OpenSSL以後, 在其目錄下可以發現有個INSTALL.W32檔案,這個檔案就是在windows下的安裝說明。你可以用UltraEdit開啟它。 1.安裝perl,perl可以從http://www.activestate.com/ActivePerl下載。 2.安裝編譯器(任意一個都可以),我僅以Visual C++為例子。 Visual C++ Borland C GNU C (Cygwin or MinGW) 3.如果通過彙編的方式編譯,需要安裝組合語言編譯器。MASM NASM都可以。如果速度要求不高,可以不用彙編的方式編譯,即不需要安裝。MASM一般由VC++內建,Windows NT 4.0 DDK a和Windows 98 DDK也帶有MASM。把XXXXXml.exe和XXXXXml.err檔案,提取出來,命名為ml.exe和ml.err,並把他們放到PATH路徑 中即可。 NASM可以免費擷取,很多地方都可以下載到,如http://www.kernel.org/pub/software/devel/nasm/binaries/win32/ nasmw.exe檔案也需要放到PATH路徑中。 4.開啟一個DOS視窗,輸入:perl Configure VC-WIN32 5.如果使用MASM,接著輸入:ms\do_masm 如果使用NASM,接著輸入:ms\do_nasm 如果不使用組合語言編譯器,輸入:ms\do_ms 6.在DOS視窗中接著輸入:nmake -f ms\ntdll.mak 如果沒有錯誤的話,編譯就通過了,在out32dll目錄下面就可以看到,產生的dll檔案和可執行檔了。把他們放到,PATH環境變數對應的一個目錄裡就可以了。 |
如何在Windows下編譯OpenSSL (Vs2005使用Vc8的cl編譯器)
1、安裝ActivePerl//初始化的時候,需要用到perl解譯器
2、使用VS2005下的Visual Studio 2005 Command Prompt進入控制台模式(這個模式會自動化佈建各種環境變數)
3、解壓縮openssl的包,進入openssl的目錄
4、perl configure VC-WIN32
盡量在這個目錄下執行該命令,否則找不到Configure檔案,或者指定完整的Configure檔案路徑。
5、ms\do_ms
在解壓目錄下執行ms\do_ms命令
6、nmake -f ms\ntdll.mak
編譯後
在openssl解壓目錄下執行,完成編譯後。輸出的檔案在out32dll裡面,包括應用程式的可執行檔、lib檔案和dll檔案
注 意:在運行第五步時,cl編譯器會抱怨說.\crypto\des\enc_read.c檔案的read是The POSIX name for this item is deprecated(不被推薦的),建議使用_read。呵呵,我可不想將OpenSSL中的所有的read函數修改為_read。再看cl的錯誤碼 error C2220,於是上MSDN上尋找:
warning treated as error - no object file generated
/WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated.
是由於設定了/WX選項,將所有的警告都作為錯誤對待,所以。。。
於是開啟OpenSSL目錄下的MS目錄下的ntdll.mak檔案,將CFLAG的/WX選項去掉,存檔。。。
繼續執行nmake -f ms\ntdll.mak
於是成功。。。
(我下載的是openssl-0.9.8a版本)
準備工作:
1. 安裝Visual C++ 6.0:
在安裝VC6.0的時候直接註冊了環境變數後面會省略一個步驟。
已經從OpenSSL0.9.7i開始支援VC2005了,所以安裝2005也可以。
2. 安裝Perl5:
在網上搜尋一下ActivePerl For Windows,我們需要的是for win32 x86版本的ActivePerl,它是Windows環境下的PERL語言解譯器,其中就包括Perl for Win32。
3. 下載並解壓OpenSSL:
到http://www.openssl.org/找一個源碼包,目前0.9.8g是最新的版本了,下載到本地並且解壓到一個目錄下。
準備工作完成,開始編譯。在OpenSSL源碼包中有INSTALL、INSTALL.MacOS、INSTALL.NW、
INSTALL.OS2、INSTALL.VMS、INSTALL.W32、INSTALL.W64 和 INSTALL.WCE等檔案,這些檔案就是為不同的作業系統安裝OpenSSL準備的,Win32環境下當然是學習INSTALL.W32這個檔案,整個編譯安裝過程裡面寫的很清楚:
1. 控制台下進入OpenSSL檔案夾,回合組態檔案(run Configure):
> perl Configure VC-WIN32 |
2. build the Makefiles and optionally the assembly language files:
- If you are using MASM then run: > ms\do_masm - If you are using NASM then run: > ms\do_nasm - If you don't want to use the assembly language files at all then run: > ms\do_ms |
裡面都說了,如果你不想用組合語言檔案,就用第三種咯。
3. 產生庫檔案:
斷行符號後就進入編譯狀態了,等待編譯完成後,在OpenSSL目錄下會多出幾個檔案夾,其中out32dll中得到連結庫檔案和可執行程式,inc32中是產生的標頭檔。這些庫檔案加上標頭檔就可以拿去用了。
4. 如何還想進行安裝:
> nmake -f ms\ntdll.mak install |
btw: 如果控制台說nmake不是命令,說明VC的環境變數沒有註冊。在VC安裝目錄下的\VC98\bin目錄下執行:
這樣環境變數就註冊好了。再試試nmake吧。