如何在Windows下編譯OpenSSL

來源:互聯網
上載者:User

 

解壓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. 產生庫檔案:

> nmake -f ms\ntdll.mak

斷行符號後就進入編譯狀態了,等待編譯完成後,在OpenSSL目錄下會多出幾個檔案夾,其中out32dll中得到連結庫檔案和可執行程式,inc32中是產生的標頭檔。這些庫檔案加上標頭檔就可以拿去用了。

4. 如何還想進行安裝:

> nmake -f ms\ntdll.mak install

btw: 如果控制台說nmake不是命令,說明VC的環境變數沒有註冊。在VC安裝目錄下的\VC98\bin目錄下執行:

> vcvars32.bat

這樣環境變數就註冊好了。再試試nmake吧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.