今天在学习 cocos2dx tolua++ 时出现了一个问题:在代码中使用了类 CCHttpClient 时, 编译失败,提示的错误是 :
无法解析的外部符号 __imp__curl_slist_append,该符号在函数
问了公司的C++牛人lirong ,他说是因为没有找到实现。我也感觉到很奇怪,因为我新建 cpp工程,在cpp工程中使用 CCHttpClient 是没有问题,也就是说这个库的实现应该是存在的。那到底是什么问题导致它没有找到这个实现呢?
后来在网上搜了一下,找到这篇文章
http://blog.csdn.net/missmecn/article/details/7193181
笔者的错误信息与我的相同,他的解决方法是:
1、给工程添加依赖的库:项目->属性->链接器->输入->附加依赖项,把libcurl.lib ws2_32.lib winmm.lib wldap32.lib添加进去
注意,debug配置用libcurld.lib
2、加入预编译选项:项目->属性->c/c++ ->预处理器->预处理器,把 ;BUILDING_LIBCURL;HTTP_ONLY复制进去(注意不要丢了";")
于是我新建了一个cpp工程,一个lua工程,对比 它们的 项目->属性->链接器->输入->附加依赖项 发现在lua工程中没有添加 libcurl_imp.lib;
把这个lib加上,编译成功。运行没有问题。