關於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函式老是出錯,主要是因為版本用錯了,老是檢查不了原因。所以得注意