1. 安裝Perl:ActivePerl-
2. 編譯OpenSSL:(Windows/VC下編譯成DLL)
a) 下載openssl,目前版本是:openssl-0.9.8g。
b) 解壓,比如:D:\.
c) cd d:\openssl-
d) perl Configure VC-WIN32
e) ms\do_masm.bat,或者ms\do_ms.bat、ms\do_nasm.bat
f) 到VCStudio的VC98(VC6,在.Net下是VC7)目錄,運行:vcvars32.bat
g) 回到d:\openssl-
h) 如果成功的話,會在out32dll目錄下生成libeay32.dll, libeay32.lib, ssleay32.dll, ssleay32.lib
在編譯的時候,可能會出現以下問題:
Assembling: .\crypto\sha\asm\sha512-sse2.asm .\crypto\sha\asm\sha512-sse2.asm(29) : error A2006: undefined symbol : XMMWord。
這是因為:.\crypto\perlasm\x86ms.pl中對masm的版本定義不對,OpenSSL網站上給出一個此文件的補丁:
openssl/crypto/perlasm/x86ms.pl
--- x86ms.pl 2007/07/19 10:45:03
+++ x86ms.pl 2007/10/21 14:15:40
@@ -339,8 +339,17 @@sub main''file_end
{
# try to detect if SSE2 or MMX extensions were used...
- if (grep {/\b[x]?mm[0-7]\b,/i} @out) {
- grep {s/\.[3-7]86/\.686\n\t\.XMM/} @out;
+ my $xmmheader=<<___;
+.686
+.XMM
+IF \@Version LT 800
+XMMWord STRUCT 16
+ DQ 2 dup (?)
+XMMWord ENDS
+ENDIF
+___
+ if (grep {/\b[x]?mm[0-7]\b/i} @out) {
+ grep {s/\.[3-7]86/$xmmheader/} @out;
}
push(@out,"_TEXT\$ ENDS\n");
push(@out,"END\n");
但是仍然不對,所以干脆用NASM,回退到步驟e),運行ms\do_nasm.bat,然後依然按照下面的步驟進行。
3. 編譯Libcurl:
a) 下載curl源代碼,當前版本是curl-7.17.1
b) 解壓
c) 到VCStudio的VC98(VC6,在.Net下是VC7)目錄,運行:vcvars32.bat。(由於安裝OpenSSL的時候已經做過,這步可省略)
d) 添加環境變量:OPENSSL_PATH=D:\openssl-
e) 到curl目錄下,運行nmake vc-ssl-dll
f) 成功,則在.\lib下生成libcurl.lib。
g) 要得到libcurl.dll,可以運行.\lib\curllib.dsw,這是一個Visual Studio 6.0的工程,編譯成功後可在.\lib\Debug下生成libcurl.dll。
…\lib\ldap.c(49) : fatal error C1189: #error : Your Platform SDK is NOT sufficIEnt for LDAP support! Update your Platform SDK, or disable
LDAP LDAP support!
原因是在ldap.c中會出現# include <winldap.h>,將winldap.h所在目錄加到工程的project->Setting->C/C++->Category:Preprocessor->Additional include DirectorIEs中去即可。
另外,OpenSSL和Curl的include目錄openssl和curl分別在各自主目錄的inc32和include下。在編程時轉移到資源目錄或者直接include即可。
有關curl的資料可以在http://curl.haxx.se找到。