curlpp是libcurl的C++封装,由于作者本身并不使用Visual Studio(可能并不贴切,但总之作者提供的vs工程并无法直接编译通过并运行),所以在Windows下的构建并不是解压后就可以编译通过。我自己捣鼓了一个多小时,才发现原来是这么回事。于是将编译的过程和注意事项分享如下。
1.curl下载
从这个http://curl.haxx.se/download.html页面下载,我下载的是http://curl.haxx.se/download/curl-7.20.1.tar.gz
2.curlpp下载
从http://curlpp.org/index.php/download这个页面下载, 我下载的是http://curlpp.googlecode.com/files/curlpp-0.7.3.tar.gz
3.编译curl
由于curlpp是对curl的封装,他必须依赖于curl,所以必须先编译curl。我的机器只安装了vs2008,我的步骤如下:
001.直接用vs2008打开curl-7.20.1/vc6curl.dsw,提示升级工程到vc9,点击Finish完成升级,这样你就有了一个vc6curl.sln
002.编译所有工程配置,我这一点问题都没有直接编译通过了,这一步你可以得到的是:
curl-7.20.1/lib/DLL-Debug/
curl-7.20.1/lib/DLL-Release/
curl-7.20.1/lib/LIB-Debug/
curl-7.20.1/lib/LIB-Release/
这四个目录,生成的是DLL还是Lib看目录名就明白了。curlpp默认是用动态链接的方式使用curl,对应的目录/lib/DLL-Debug和lib/DLL-Release中的lib。
4.编译curlpp
001.解压代码后,打开curlpp-0.7.3/curlpp.VC8.vcproj,还是一样提示升级工程到vc9,升级完成。
002. 直接编译会有问题,提示无法找到curl/curl.h等等,我们需要做的事情是:设置$(LIBCURL_PATH)这个宏,把他的值设置成第3步的curl目录。设置的方法是:添加一个系统环境变量或者添加一个VS用户自定义宏,添加的方法可以参考这个:vs2005如何使用用户自定义宏(User Macros)
003.设置好curl的路径后你会发现还是提示你有几个文件找不到:
infos.cpp、option.cpp这两个直接从工程去掉就可以了
LifetimeLibrary.cpp,PrivateMembers.cpp,这两个文件只是工程中的路径错了,改一下属性中的引用路径就可以了,当然要去掉也可以。(在vs的Solution Explorer中进行)
004.编译会提示你找不到libcurl.lib,原因是工程设置中的lib引用目录不对。
修改如下(这个路径其实和你设置的LIBCURL_PATH)这个自定义环境变量所对应的curl目录下的结构有关,按上面的步骤下来的话这里需要修改下):
Project properties/Linker/General/ Additional Library Directory:$(LIBCURL_PATH)/lib/DLL-Debug
Project properties/Linker/Input/Additional Dependencies: libcurld_imp.lib
下面是从README.win32中截取的一段相关说明