[报错]error LNK2019: 无法解析的外部符号

国谦哥哥 2015-05-18 07:45:00
大家好。我最近遇到个问题想请教各位。我用cocos2d-x开发手游,在Visual Studio下生成解决方案的时候出现一些类似下面这种错误:

错误 307 error LNK2019: 无法解析的外部符号 "public: void __thiscall FileServer::stop(void)" (?stop@FileServer@@QAEXXZ),该符号在函数 "void __cdecl endRuntime(void)" (?endRuntime@@YAXXZ) 中被引用 D:\Tools\Workspace\XiangMo\xm_cpp\gamecore\mx\frameworks\runtime-src\proj.win32\Runtime.obj xm

附图:


我自己尝试搜索了一些帖子,但是最后也无法解决问题。请问这种问题是什么原因造成的呢?有什么解决办法吗?
...全文
3080 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysnis 2015-05-20
  • 打赏
  • 举报
回复
LNK 错误是没有引入相关的lib和dll,或者引入路径错误, 函数声明不是标准C
tangtangtangbaoli 2015-05-19
  • 打赏
  • 举报
回复
link失败肯定是外部引用的变量或者函数没用找到实现.而这些实现都在源文件或者库lib里 如果引用了库 但是路径不对 找不到也会报这些错误 还有就是导出的c++函数,要加extern "c"
xiaohuh421 2015-05-19
  • 打赏
  • 举报
回复
无法解析的外部符号 要么是对应CPP文件未加入到工程中, 要么就是lib文件没有包含.
lraining 2015-05-19
  • 打赏
  • 举报
回复
出现无法解析外部符号错误一般是一下3个原因: 1,没有引入相关的lib和dll,或者引入路径错误; 2,include了头文件,但没有在相关文件中没有实现这个函数,导致编译能通过,却无法链接; 3,可能是函数签名的问题,cdecl和thiscall在vc下是相同的,但其他的如stdcall不同,这样会导致链接找不到符号;如果是C++声明或定义C的符号,要加extern “C”
赵4老师 2015-05-19
  • 打赏
  • 举报
回复 1
将错误信息中出现的标识符放在google里面搜一下,看其在哪个.lib中,然后在本地硬盘上搜索该.lib,如果没有,在网上搜索相关库或模块下载安装,然后将其所在目录填写到“附加依赖库所在目录”中,将其名字添加到“附加依赖库”中,重新连接。 VC6: 工程、设置、Link、分类:Input、附加库路径:填写附加依赖库所在目录 分号间隔多项 工程、设置、Link、分类:Input、对象/库模块:填写附加依赖库的名字.lib 空格间隔多项 VS20xx: 项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项 项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
走好每一步 2015-05-18
  • 打赏
  • 举报
回复
动态链接库的问题
走好每一步 2015-05-18
  • 打赏
  • 举报
回复
一般是库没设置好。
william7_138 2015-05-18
  • 打赏
  • 举报
回复
链接错误是因为在链接的时候没有找到FileServer::stop()这个函数的定义,楼主可以看看FileServer这个类所在的头文件有没有包含。
FightForProgrammer 2015-05-18
  • 打赏
  • 举报
回复
youjun610789338 2015-05-18
  • 打赏
  • 举报
回复
没玩过cocos2d-x手游开发 看报错信息是链接阶段出错,程序编译分为四个步骤:预处理->编译->汇编->链接,链接负责查找变量和函数的具体定义,编译通过但链接出错说明就是某个变量或者函数只有声明没有定义了。 看报错信息,是register_all_GameCoreUser和~ScriptHandlerEntry()两个函数找不到定义,是不是对应的库文件没有链接进来勒?
勤奋的小游侠 2015-05-18
  • 打赏
  • 举报
回复
看你图片里面的提示,应该是cocos2d的库没有加进来的。 你这个游戏工程是用什么生成的?将cocos2d的工程加进来,然后设置好lib关系。
闲鱼野鸟 2015-05-18
  • 打赏
  • 举报
回复
无法解析的外部符号主要是因为编译器找不到变量的定义。如果在头文件中声明了变量,但是没有在实现文件中定义变量时会报这个错。或者使用了某个动态库的头文件,但是没有引用该动态库的输入库(即对应的LIB)时也会报这个错。 你可以搜索一下报错的外部符号,看看是否有定义该符号的地方。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧