标签:
libcurl 库的代码是完全开源的,但是我们一般不会在项目中直接引入它的源代码,而是通过动态链接库隐式链接的方式引入 libcrul 库。也就是说,我们需要在自己的项目中引入 libcrul 相关的三类文件:.lib(导出函数)、.dll 和 .h。
要得到这些文件有两种方式:
方式一,也是推荐优先尝试的做法,到官网下载页面上根据自己的项目开发环境,下载对应的已经编译好的 libcurl 库文件;
方式二,还是到官网下载页面上,下载整个 libcurl 库的源代码自行编译,得到需要的文件。
官网首页:http://curl.haxx.se
官网下载页面:http://curl.haxx.se/download.html
下面分别描述一下两种方式的优缺点和操作步骤。
方式一:到官网下载页面下载对应的已经编译好的 libcurl 库文件
方式一的优点是操作简单,拿来主义,把下载好的压缩包一解压,复制粘贴就可以直接用了。缺点是官网上所提供的这种由第三方开发者编译好的库文件,估计也是热心网友或者开源项目组成员好心上传上去的,因此它们与 libcurl 库未必是同步更新的,比如 2012 年六一儿童节当天,我在官网上下载的 Win32 - MSVC 编译生成库对应的 libcurl 版本是 7.25.0,而最新的 libcurl 版本已经更新到了 7.26.0。另外还有个比较坑爹的地方是,这些由第三方开发者自行编译上传的库文件,质量参差不齐,我就试过引入某个版本的库文件之后,导致自己的程序运行时发生 Crash。
操作步骤:
(1) 进入官网下载页面
(2) 在右侧选择要使用 libcurl 的开发环境
(3) 选择适合的编译生成库
我正在的开发的这个项目主要是使用 libcurl 来做一些腾讯微博开放平台的 API 调用(基于 HTTP),并不需要使用到 SSL 传输(比如 HTTPS和FTPS),所以我选择的是不带 SSL 支持编译的版本。
方式二:到官网下载页面下载整个 libcurl 库的源代码自行编译,得到需要的文件
方式二的优点是你想怎么着都行,缺点是操作比较繁琐。libcurl 是可以定制编译的,你可以根据实际需要是否支持某些特性,但这也带来了操作上的麻烦。比如说如果你开启了 OpenSSL 支持,那你就需要先自行引入 OpenSSL 这个第三方库,才能开始 libcurl 的编译,又比如你开启了 ZLib 支持,那你又必须先搞定 ZLib 这个第三方库。
实际操作的时候,你会发现像 OpenSSL 和 ZLib 这些第三方库的编译又是一件非常繁琐的事情。所以下面我只谈 libcurl 的编译。
你可以直接用 Visual Studio 编译 libcurl
如果不需要zlib跟OpenSSL,下载完整的 libcurl 代码库之后,直接用 Visual Studio 打开自带的 vc6curl.dsw 打开编译就可以了。
使用 VC6 编译的时候可能会遇到下面这个错误提示,这是因为 VC6 默认安装的 Platfomr SDK 比较老:
fatal error C1189: #error : MSVC 6.0 requires "February 2003 Platform SDK" a.k.a. "Windows Server 2003 PSDK"
可以通过 ALLOW_MSVC6_WITHOUT_PSDK 这个编译宏来屏蔽强制使用 February 2003 Platform SDK 编译,步骤如下:
你还可以用命令行来编译 libcurl
这个在“代码包根目录\winbuild\BUILD.WINDOWS.txt” 里面有很详细的说明。值得一提的是,BUILD.WINDOWS.txt 中对 USE_SSPI 编译选项的描述有误,多了一个 S。
USE_SSSPI=<yes or no> - Enable SSPI support, default to yes
以 VS2010 为例说明命令行编译的步骤:
标签:
原文地址:http://www.cnblogs.com/duxiuxing/p/2528858.html