Windows 下openssl安裝與配置

來源:互聯網
上載者:User

網上方法很多,大部分是針對32位機的,自己的電腦因為是win7,64位,摸索了很久才安裝成功.

 

環境

WIN7, 64位, vs2005


下載ActivePerl

配置過程中需要產生一些mak檔案,這些產生代碼用perl指令碼產生,所以要安裝一個ActivePerl.

 

網址: http://www.activestate.com/activeperl/

 

我下載了兩個版本:

 

ActivePerl-5.16.2.1602-MSWin32-x64-296513.msiActivePerl-5.16.2.1602-MSWin32-x86-296513.msi


裝的是第一個版本,64位的。


下載openssl

網址 http://www.openssl.org/

我用的是openssl-0.9.8g版本,解壓到c盤根目錄。

 

安裝步驟:

(可以參照openssl目錄下的install.win32)

1開啟命令列

進入openssl源碼目錄。
cd c:/openssl-0.9.8.g
執行perl Configure VC-WIN32

 

2在c:/openssl-0.9.8.g目錄運行ms\do_ms

另外兩種方式如果使用也必須保證本機有編譯器才能使用。

:ms\do_masm(預設vc內建的編譯器;也也以自己下載安裝)

:ms\do_nasm(需要自己下載)

 

3 DOS視窗轉到C:\Program Files\Microsoft Visual Studio \VC98\bin目錄(就是VC或VS對應的目錄,你電腦可能有差異)

執行vcvars32.bat以配置環境變數.成功後顯示如下:


 

4、跳到openssl目錄下,編譯動態連結程式庫

cd c:/openssl-0.9.8.g
執行 >nmake -f ms\ntdll.mak

 

如果編譯成功,輸出在out32dll目錄下:包括可執行檔、兩個dll和兩個lib檔案: libeay32.dll, libeay32.lib, ssleay32.dll,ssleay32.lib


如果遇到"ml不是內部或外部命令"這樣的錯誤,找到你電腦裡的ml.exe檔案拷貝到目前的目錄重新執行即可。

 

這裡要特彆強調一下,這種方法產生的是動庫連結庫, 也就是我們的應用工程如果要使用openssl, 編譯時間要指定

lib檔案,程式發布時要用到相應的dll. 我遇到過一種情況是, 在win7下發布的使用openssl的程式無法運行,彈出

“運行時初始化相關的錯誤”, 但是在xp下編譯,發布,在其它win7和winXP上都能運行. 估計是win7下沒配置好,導致只能原生編譯,運行,無法發布.

 

如果要把openssl編譯成靜態庫,只要把上面的ntdll.mak換成nt.mak就可以了,我試著用了一個靜態庫,發現要解決很多編譯時間的相容,衝突問題,建議不要使用靜態方法.


下面來測試一下。

建立工程

開啟vs2005,

在additionalinclude directories加上

"C:\openssl-0.9.8g\include"

這個目錄.

 

在additionallibrary directories加上

"C:\openssl-0.9.8g\out32dll"

這個目錄

 

代碼類似下面這樣:

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#include<openssl/bn.h>#include<openssl/ec.h>#include<openssl/rand.h>#include<openssl/err.h>#include<openssl/ecdsa.h>#include<openssl/ecdh.h>#include"sm2.h" #pragmacomment(lib,"libeay32.lib")

編譯不會有問題. 同樣在VC6下,把上面兩個目錄包含進來,編譯也通過.

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.