//
最近用curl做应用。。
下了最新的curl-7.21.6
用VS2008编译,生成静态库及动态库。
开始想用静态库,发现不行, 换成动态库:
添加头文件目录: 工具-》选项-》项目和解决方案-》VC++目录 -》包含文件,添加:D:my_codescurl-7.21.6curl-7.21.6include
给项目添加依赖库:libcurl_imp.lib
把libcurl.dll 拷到项目目录下。
OK
然后,不爽,因为发布程序时要带上dll文件,决定用lib.
然后老是出现
1>curl_adapter.obj : error LNK2001: 无法解析的外部符号 _curl_easy_setopt
1>curl_adapter.obj : error LNK2001: 无法解析的外部符号 _curl_easy_perform
1>curl_adapter.obj : error LNK2001: 无法解析的外部符号 _curl_easy_cleanup
1>curl_adapter.obj : error LNK2001: 无法解析的外部符号 _curl_easy_init
1>my_scrobbler.obj : error LNK2001: 无法解析的外部符号 _curl_free
1>my_scrobbler.obj : error LNK2001: 无法解析的外部符号 _curl_escape
找到原因:
http://blog.csdn.net/pgmsoul/archive/2009/05/20/4203941.aspx
http://curl.haxx.se/mail/lib-2007-11/0300.html
步骤:
先确定项目的
VS2008,项目——属性——配置属性——C/C++——代码生成:他有/MT,/MTd,/Md,/MDd四个选项
要确定两个项目是一致的: libcurl 及 你自己的项目。
然后重新生成libcurl
然后到你的项目中:
添加依赖库:
#pragma comment( lib, "libcurl.lib" )
#pragma comment ( lib, "ws2_32.lib" )
#pragma comment ( lib, "winmm.lib" )
#pragma comment (lib, "wldap32.lib")
然后添加预处理器定义:【项目属性-》C/C++ -》 预处理器-》 预处理器定义】
CURL_STATICLIB
重新编译OK!!!