error LNK2001: 无法解析的外部符号 _curl_easy_init
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
最近用curl做应用。。
下了最新的curl-7.21.6
用VS2008编译,生成静态库及动态库。
开始想用静态库,发现不行, 换成动态库:
添加头文件目录: 工具-》选项-》项目和解决方案-》VC++目录 -》包含文件,添加:D:\my_codes\curl-7.21.6\curl-7.21.6\include
给项目添加依赖库: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!!!
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=526