這個沒什么好說的,直接運行msi即可。
編譯OpenSSL
1.使用Visual Studio Tool中的“VS2013 x64 本機工具命令提示”來打開控制台;也可以打開一個控制台,然后進到“安裝路徑\Microsoft Visual Studio 12.0\VC\bin\amd64\“中運行vcvars64.bat;
2.解壓下載下來的openssl的壓縮包,進入解壓文件夾,輸入命令:perl Configure VC-WIN64A;
3.輸入命令ms\do_win64a;
4.輸入命令nmake –f ms\nt.mak開始編譯,如需要dll則命令為nmake –f ms\ntdll.mak(如果前面沒有配置好發現使用了32bit的nmake,可使用絕對路徑使用“安裝路徑\Microsoft Visual Studio 12.0\VC\bin\amd64\nmake.exe”);
5.如編譯成功,可使用nmake –f ms\nt.mak test來測試。
PS:如果需要編譯32bit的,第一步使用x86的控制台,二三步中改為VC-WIN32和ms\do_ms。
配置VS
1.項目->屬性->配置屬性->VC++ 目錄->包含目錄,將openssl文件夾的inc32添加進去;項目->屬性->配置屬性->VC++目錄->庫目錄,添加openssl文件夾下的out32dll;
2.項目->屬性->配置屬性->鏈接器->輸入->附加依賴項,增加libeay32.lib和ssleay32.lib;
3.將out32dll中的libeay32.dll和ssleay32.dll拷貝至工程目錄下。
編譯當中遇到的錯誤和解決辦法
OpenSSL編譯的時候提示少了strings.h頭文件
修改這個文件
crypto/o_str.c
#if !defined(OPENSSL_IMPLEMENTS_strncasecmp) && \
!defined(OPENSSL_SYSNAME_WIN32) && \
!defined(NETWARE_CLIB)
# include <strings.h>
#endif
這個編譯開關定義了就可以了
定義的方法在nt.mak 這個文件中的CFLAG 將-DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN
這兩個宏加進去
還有一個重復定義的問題,這樣也可以一並解決
鏈接錯誤
link /nologo /subsystem:console /opt:ref /debug /dll /out:out32dll\libea
y32.dll /def:ms/LIBEAY32.def @C:\Users\Unst\AppData\Local\Temp\nm75AD.tmp
bn-586.obj : error LNK2005: _bn_sub_part_words 已經在 bn_mul.obj 中定義
正在創建庫 out32dll\libeay32.lib 和對象 out32dll\libeay32.exp
mem.obj : error LNK2001: 無法解析的外部符號 _cleanse_ctr
mem.obj : error LNK2001: 無法解析的外部符號 _cleanse_ctr
out32dll\libeay32.dll : fatal error LNK1120: 1 個無法解析的外部命令
NMAKE : fatal error U1077: “"D:\Program Files\Microsoft Visual Studio 10.0\VC\B
IN\link.EXE"”: 返回代碼“0x460”
Stop.
原因:之前因為沒有注意輸入命令的大小寫,影響了后面的編譯。
辦法:刪了OpenSSL目錄,再來一遍。