以前在vc2005下用过libcurl,今天用vc2008写另一个软件需要重新编译libcurl库
以前编译的时候随便参照了一下网上的方法,感觉写的都不是很全,这次时间不紧就重新研究了下
访问网页的时候我选择了gzip压缩,因此添加了zlib包,如果不需要zlib跳过步骤2
1. 下载源代码:
下载libcurl:
打开:http://curl.haxx.se/download.html
在Source Archives下面有类似:curl 7.20.0 , Released on the 9th of February 2010 .
这下面的4个链接随便下载一个解压就行
下载zlib:
打开:http://www.zlib.net/
搜索:The current release is publicly available here:
这下面的链接都一样,只不过压缩方式或者网址不一样,随便下载个解压就行
2. 静态编译zlib:
注:因为我的程序就一个exe文件,不想带一堆dll发布,因此选择了静态编译libcurl,zlib也静态编译了
zlib源代码解压后默认的目录名为:zlib-1.2.3,进入目录projects/visualc6,打开zlib.dsw(用高版本vc系统会提示转成相应的版本)
在vc菜单里选择 "生成->批生成",再lib debug和lib release后面打钩,点“生成”,生成的zlib.lib和zlibd.lib分别在Win32_LIB_Release和Win32_LIB_Debug目录下
3. 静态编译libcurl:
注:将解压后的libcurl和zlib目录放到一起,比如将curl-7.20.0和zlib-1.2.3都放到d:/source下,编译的时候 libcurl默认zlib和自己在相同的目录下
编译参数的确定:
libcurl加压后的目录为:curl-7.20.0,进入目录lib,找到Makefile.vc9文件,这个里面有各种编译参数,有时间可以仔细的看看
这里给个简单的列子:先搜索 # release ,这下面都是不同的编译命令选项(就是后面用到的set CFG=xxx),我想静态编译libcurl库而且zlib也是静态编译,因此选择release-zlib
编译release版本: (我用的vc2008就是vc9了)
先把zlib-1.2.3/projects/visualc6/Win32_LIB_Release目录下的zlib.lib复制到zlib-1.2.3目录下
set CFG=release-zlib
nmake -f Makefile.vc9
编译完成后去release-zlib目录下找到libcurl.lib,这个就是生成的库了
编译debug版本:
方法同上,注意先将zlib-1.2.3/projects/visualc6/Win32_LIB_Debug目录下的zlibd.lib改成zlib.lib放到zlib-1.2.3目录下
编译:
set CFG=debug-zlib
nmake -f Makefile.vc9
下面这2个就是生成的libcurl库了
curl-7.20.0/lib/release-zlib/libcurl.lib
curl-7.20.0/lib/debug-zlib/libcurld.lib