**
網上方法很多,大部分是針對32
位機的,自己的電腦因為是win7,64位,摸索了很久才安裝成功.
環境
win7, 64
位, vs2005
activeperl
配置過程中需要生成一些mak檔案,這些生成**用perl指令碼生成,所以要安裝乙個activeperl.
**:
[css]view plain
copy
activeperl
-5.16
.2.1602
-mswin
32-x
64-296513
.msi
activeperl-5.16
.2.1602
-mswin
32-x
86-296513
.msi
裝的是第乙個版本,64位的。
openssl
** 我用的是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"
這個目錄
**類似下面這樣:
[cpp]view plain
copy
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include"sm2.h"
#pragmacomment(lib,"libeay32.lib")
編譯不會有問題.
同樣在vc6下,把上面兩個目錄包含進來,編譯也通過.
在Windows下編譯OpenSSL
如何在windows下編譯openssl vs2005使用vc8的cl編譯器 1 安裝activeperl 初始化的時候,需要用到perl直譯器 2 使用vs2005下的visual studio 2005 command prompt進入控制台模式 這個模式會自動設定各種環境變數 3 解壓縮ope...
Windows下編譯安裝openssl
最近專案要用到soap程式設計,本機測試ok,但是訪問遠端主機提示tcp connect 失敗,網上說要soap ssl init soap ssl client context 但是編譯報錯,說是各種錯誤暫時歸結於openssl。於是先搭建openssl環境。本人系統 window8 64 開發環...
windows系統下openssl的編譯
遇到各種錯誤,實在考驗人的耐性,把整個詳細過程寫下來,也讓其他人好少走彎路。1 首先需要perl,安裝好perl並將bin新增到系統變數path中 2 接著是c編譯器,我電腦中安裝了vc 2010,因此就不需要再安裝,只需在使用的時候設定相應的環境變數 步驟如下 2 開啟cmd命令列,進入c ope...