在Windows Visual C++ 6.0/7.0下编译带ssl的curl库
来源:互联网 发布:中国历年gdp增长率数据 编辑:程序博客网 时间:2024/06/03 23:00
编译libcurl with SSL:
1. 安装Perl:ActivePerl-5.8.0.806-MSWin32-x861.msi
2. 编译OpenSSL:(Windows/VC下编译成DLL)
a) 下载openssl,目前版本是:openssl-0.9.8g。
b) 解压,比如:D:/.
c) cd d:/openssl-0.9.8g
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-0.9.8g,运行:nmake -f ms/ntdll.mak
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 1.18.2.3 -> 1.18.2.4
--- x86ms.pl 2007/07/19 10:45:03 1.18.2.3
+++ x86ms.pl 2007/10/21 14:15:40 1.18.2.4
@@ -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-0.9.8g
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找到。
- 在Windows Visual C++ 6.0/7.0下编译带ssl的curl库
- windows curl ssl版本编译
- 带ssl证书验证的curl请求
- curl windows下编译lib
- 在Visual Studio命令提示符界面下编译链接OpenSSL自带的示例程序
- windows 编译curl静态库的方法 curl-7.36.0
- 在Windows上编译最新的CURL,含有zlib,openssl
- GDAL1.6.0在Windows下的编译
- GDAL库在windows下的编译
- 在Windows环境下配置Object-c的编译环境
- Qt4.3.0在Windows XP下与Visual 6.0、Visual Studio2003 、Visual Studio2005的整合步骤
- vs2010编译带openssl 及zlib的curl库注意事项
- Redis在Windows上编译(Visual C++…
- 在MS Windows下使用Visual C++编译Qt
- 在Windows下使用Visual Studio 10编译ACE
- 在windows下编译v8引擎-with visual studio 2010
- 在Windows下使用Visual Studio编译Lua5.3
- 在Windows visual studio环境下编译Lua
- ConcurrentHashMap应用注意事项
- 常量和静态只读字段
- 业务对象的特征和类型
- 如何使用XCDZIP35.OCX对文件压缩-已解决整理
- 伪指令.word
- 在Windows Visual C++ 6.0/7.0下编译带ssl的curl库
- 开博
- 皮带传动实验
- Java数据的持久保存——写入XML文件
- Hibernate级联操作学习之持久化临时对象
- eMule源代码解析
- 用DirectShow实现QQ的音视频聊天功能
- Spring+Ibatis集成开发实例!
- Android学习笔记 ( by quqi99 )