原文地址:http://quick.cocoachina.com/?p=235
但是实际操作和作者有很多出处,发生了很多问题,以后肯定也会遇到别的问题,此篇做记录
MAC下遇到的问题:
1、sh build_luabinding.sh 指令报错
build_luabinding.sh: line 6: /bin/compile_luabinding.sh: No such file or directory
原因:$QUICK_COCOS2DX_ROOT路径没有找到,
换成自己的quick路径就可以了
2、
MyClass_luabinding.cpp 文件出错 :
MyClass_luabinding.cpp:41:4: error: use of undeclared identifier ‘MyClass’
MyClass::addTwoNumber(number1,number2);
^
1 error generated.
Use of undeclared identifier ‘MyClass’
原因:找不到‘MyClass’ 引入头文件:#include"MyClass.h"
这里写下自己的操作步骤:
1、写h和cpp文件
MyClass.h文件:
#ifndef __MY_CLASS_H_
#define __MY_CLASS_H_
class MyClass
{
public:
staticint addTwoNumber(int number1,int number2);
private:
MyClass(void) {}
};
#endif// __MY_CLASS_H_
MyClass.cpp文件
#include "MyClass.h"
#include "cocos2d.h"
int MyClass::addTwoNumber(int number1,int number2){
CCLOG("wade addTwoNumber");
return (number1 + number2);
}
创建 MyClass_luabinding.tolua 文件,并修改内容为:
class MyClass : public CCObject { public: static float addTwoNumber(float number1, float number2); };
创建build_luabinding.sh文件,内容如下:
#!/usr/bin/env bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "$DIR" OUTPUT_DIR="$DIR" MAKE_LUABINDING="
/Users/mavericks/Documents/android/quick-cocos2d-x-2.2.1-rc/bin/
/compile_luabinding.sh $MAKE_LUABINDING -E MyClass -d "$OUTPUT_DIR" MyClass_luabinding.tolua
成功编译sh文件后,会生成MyClass_luabinding.cpp 和 MyClass_luabinding.h 文件
打开mac下的quick的xcode工程,然后将MyClass.h,MyClass.cpp,MyClass_luabinding.cpp 和 MyClass_luabinding.h加入到工程中的sources目录下
#include"MyClass_luabinding.h"
在applicationDidFinishLaunching方法中加入
经过上述修改后,重新编译运行项目应该就可以在 Lua 脚本中使用我们导出的 MyClass 对象极其方法了。
我们打开quick/player/welcome/scripts/scenes/WelcomeScene.lua
然后找到ctor方法,添加如下:
local num1 = 2
local num2 = 3
local num3 = MyClass:addTwoNumber(num1,num2)
print("wade:num:"..num3)
如果能正常输出,则证明编译成功了。