1. 程式人生 > >關於OPENSSL在WINDOWS下編譯和使用的坑

關於OPENSSL在WINDOWS下編譯和使用的坑

因為最近使用OPENSSL 編譯使用RSA做開發,但是出現了各種問題。找了網上資源整合一下,不過還是有問題啊,在多次試驗中終於找到了使用方法。

首先

openssl編譯步驟:

32位編譯:

1、到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin目錄(看VS安裝目錄了)去執行  vcvars32.bat,初始化環境變數。

也可以直接開啟x86命令列工具就可以了啊(在VS安裝程式目錄裡可以找到)


2、執行configure(定位到OPENSSL目錄下面去執行,下面也是一樣):

perl Configure VC-WIN32  。(Release版本)

perl Configure debug-VC-WIN32 。(Debug版本

3、生成配置檔案:

ms\do_ms

4、動態編譯:

nmake -f ms\ntdll.mak

5、靜態編譯:

nmake -f ms\nt.mak

64位編譯:

1、直接開啟x64命令列工具就可以了啊(在VS安裝程式目錄裡可以找到)


2、執行configure:

perl ConfigureVC-WIN64  。(Release版本)

perl Configure debug-VC-WIN64 。(Debug版本)

3、生成配置檔案:

ms\do_ms

4、動態編譯:

nmake -f ms\ntdll.mak

5、靜態編譯:

nmake -f ms\nt.mak

安裝好了都可這個測試一下

nmake -f ms\ntdll.mak test。

動態編譯好的庫在這裡out32dll。靜態的編譯好的庫在這裡out32這裡。標頭檔案在inc32裡面。在VC++工程記得新增標頭檔案目錄。和庫目錄。

像醬紫的:


注意幾個問題:1、編譯出現錯誤:ml啊cl啊之類的。將上面的bin目錄新增到環境變數去啊。

 2、32位編譯的庫放在32位工程使用,64位編譯的放在64編譯使用,用錯了會出現很多奇怪的未知問題。

比如在RSA有個PEM_read_RSA_PUBKY函式老是出錯,主要是因為版本用錯了,老是檢查不了原因。所以得注意

 3、Debug版本用Debug的專案,Release版本用Release的專案

比如在RSA有個PEM_read_RSA_PUBKY函式老是出錯,主要是因為版本用錯了,老是檢查不了原因。所以得注意