cocos2d-x 创建lua项目问题

本文记录了作者在使用cocos2d-x创建lua项目时遇到的三个主要问题及解决过程。首先,由于相对路径错误导致模板文件无法找到,通过修改 Templates.inf 文件中的路径为绝对路径并添加缺失的 .. 解决。接着,运行项目时出现编译错误,作者通过查看源代码发现CCFileUtils接口变化,修改相应代码后问题得以解决。最后,项目运行时出现链接库错误,添加lua51.lib和pthreadVCE2.lib两个库文件后成功编译。这个过程虽然耗时,但作者认为解决问题的过程充满价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自学了将近一个月的cocos2d-x。本来没觉得有什么好记录的,都是些函数接口的调用之类的东西。但是今天解决的问题,让我不得不记录下来,为机智的我庆祝一下。

在学到lua项目这时,创建cocos2d-x项目时勾选了support lua的选项然后项目还没建立出来,就报错了。

错误一


看到这个第一感觉就是安装包有问题,因为当初配置环境的时候都做得很对,但是细想应该不是安装包的问题,谁会无缘无故删除一些文件,再压缩传到网上,来坑人啊。

仔细看这个错误“无法找到......“,很明显系统给的路径找不到对应的文件,然后自己就按照这个路径找下去,首先是../../../../../前面的路径在这个路径下找到了Templates.inf文件,打开一看,就看到../../../../../scripting/lua/cocos2dx_support/LuaCocos2d.h,这句话,很明显这就是报错后面的那句话。然后我就从后面的路径开始找,在scripting/lua/cocos2dx_support/找到了LuaCocos2d.h文件了,但是这里的路径却明显不是文件所在的路径,于是我将Templates.inf换为绝对路径直接指向LuaCocos2d.h的文件,但是依然不行,因为E:\Cocos\cocos2d-x-2.2.3\template....这个路径依然存在,再加上我写的绝对路径,路径就有不对了,不知道怎么将前面自动添加是我路径去掉,陷入坑中。再细细观察,../是做什么的,在终端..是返回上一级的命令,这里也应该是,数了数从1003目录下,到scripting目录下,应该是返回了6次,而文件中只有5个../,自己尝试的加了一个。成功创建了。本来以为这样就ok了谁知道,后面还有错误。

错误二

好不容易创建了支持lua 的项目,迫不及待的运行一下,一运行就报错了。

std::string path = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("hello.lua");
这句话错了,说什么fullPathFromRelativePath不是CCFileUtils 的成员,这是系统自动生成的代码又不是我自己写的还报错。

但是确实是报错了,不能编译,必须得改啊,但是改啥呢,自己不能凭空想吧,还是看代码这句话的意思很明显就是获得hello.lua的路径,但是这个函数没有了,只能转到CCFileUtils的定义处看看,这个函数变成什么了

看到个函数 virtual std::string fullPathForFilename(const char* pszFileName);也是获得文件的路径

也看到类似原来的函数了virtual const char* fullPathFromRelativeFile(const char *pszFilename, const char *pszRelativeFile);但是返回值是char*
反正是获得路径为什么不用第一个呢,于是将源代码改成std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("hello.lua");这个错误算是过了,但是又遇到了新的错误。

lua51.lib
pthreadVCE2.lib

错误三

各种无法解析命令

这个很明显示链接库错误,但是我又不知道具体是缺少了哪些链接库,无奈只能耐心在网上看各种帖子,

lua51.lib
pthreadVCE2.lib

加上这两个就解决了。

总结:

遇到这三种错误,虽然现在很快就将解决方法写完了,看起来也不是很麻烦,但是在真正找解决办法的时候却用去了大半天的时间,尝试了很多方法,中间也曾一度想要放弃,但是最终还是坚持下来了。当看到它跑成功的那一刻,感觉所有的辛苦都值得。为了自己的梦想坚持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值