在解决的时候是看了这两个网址的文章才帮助我解决了问题的:1.http://www.cocoachina.com/bbs/read.php?tid=281157 2.http://blog.csdn.net/dragoncheng/article/details/43482109
首先通过在终端输入 cocos new -d 工程路径 -l lua -p 包名 工程名 例如:cocos new -d /Users/zcx/Desktop/workspace -l lua -p com.my.game myLua
就可以创建一个支持Lua的cocos2d-x工程。
然后在打开工程编译的时候会报如下的错
Undefined symbols for architecture x86_64:
"_luaL_addlstring", referenced from:
等等一系列类似的错误共78条。
其中有两条错误是在AppDelegate.cpp中添加如下代码即可解决了:
extern "C"
{
#if defined (__unix) || (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
#ifndef __ENABLE_COMPATIBILITY_WITH_UNIX_2003__
#define __ENABLE_COMPATIBILITY_WITH_UNIX_2003__
#include <stdio.h>
#include <dirent.h>
FILE *fopen$UNIX2003(const char *filename,const char *mode )
{
return fopen(filename, mode);
}
size_t fwrite$UNIX2003(const void *a, size_t b, size_t c, FILE *d )
{
return fwrite(a, b, c, d);
}
char *strerror$UNIX2003( int errnum )
{
return strerror(errnum);
}
DIR *opendir$INODE64(constchar * a)
{
return opendir(a);
}
struct dirent *readdir$INODE64(DIR *dir)
{
return readdir(dir);
}
#endif
#endif
}
接下来解决最蛋疼的问题,第一步进入开头提到的第二个网址,在一楼有个附件下载,下载下来之后进入到如下的目录:
工程名/frameworks/cocos2d-x/external/lua/luajit,里面有3个.sh文件和3个文件夹,将其中的build_ios.sh替换为下载下来的文件夹中的同名文件,然后运行它(直接拖到mac的终端里去,回车,等一下就好),下载下来文件夹中的其他文件也全都放在luajit下。
至此,应该就可以打开cocos2d-x的示例工程了。
不过在我之前解决这个问题的时候还并没有完成,会在auto engine =LuaEngine::getInstance()这句话的时候报错,而在写这篇记录帖的时候却没有报这个错,所以我还是把之前的步骤也写进来,以防发生同样的问题。一个是在下图的位置:
右击那个external文件夹,选择Add Files To “cocos2d_lua_bings.xcodeproj” 选项,将工程名/frameworks/cocos2d-x/external/lua/lua添加进来,添加的时候,别忘记在Add to targets更改一下选项,默认是在mac上打勾的,我选择了在iOS上打勾。
还有最后一步,是参照了开头的第一个网址,其实第二个网址中也有提到,但是像我这样的初学者不太明白到底是怎么样改,在看了第一个网址中内容才明白的。
在上图中选择cocos2d_lua_bingings.xcodeproj然后选择中间的luabingdings iOS然后选择右侧上方的Build Settings搜索框中输入other linker,更改Debug下的iphonesimulator7.1SDK和Release下的phonesimulator7.1SDK的参数,和下面一样就可以了
至此大功告成了,至少我可以了,哈哈。对了,忘记说的,我的Xcode版本是6.4 cocos2d-x版本是3.0,其他版本的我也不知道是否可行。