Windows下编译libcurl

Windows下libcurl静态库的编译和使用

最近在玩一个游戏,这游戏的服务器是http通信的,就想伪造一些数据看看.想起了curl,于是去下载,结果编译半天总是出错,又浪费了好多时间,现在成功了,记下来.


首先从这里下载最新的源代码
http://curl.haxx.se/download.html
libcurl是源码,curl是一个http的工具,反正我用libcurl的源码就够了.

打开找到相应的VC版本工程用VS打开,我用的是VS2012,相应的版本是VC11.

一开始编译出错,因为这个版本里包含了ssh和ssl的第三方库,我也用不着所以在预编译宏里把关于ssl和ssh的都去掉.

然后继续编译lib静态库成功了,新建测试工程加入头文件和生成的附加库libcurld.lib,发现有无法识别的外部符号错误,网上找了半天解决方法.

最后的解决方法是. libcurl的预编译设定为
WIN32
_DEBUG
BUILDING_LIBCURL
测试项目的预编译设置为
BUILDING_LIBCURL
并且在测试项目头文件中添加以下内容
#define CURL_STATICLIB
#if defined(_DEBUG)
#pragma comment(lib, "libcurld.lib")
#else
#pragma comment(lib, "libcurl.lib")
#endif
#pragma comment(lib,"winmm.lib" )
#pragma comment(lib,"ws2_32.lib" )
#pragma comment(lib,"wldap32.lib" )

再次编译,搞定.