【发布时间】:2012-04-23 06:42:26
【问题描述】:
我在我的一个游戏中使用 Cocos2dX,我是 C++ 新手。 我正在创建一个类 myDelegate.h #include "cocos2d.h"
class myOFDelegate : public cocos2d::CCLayer{
public:
~myOFDelegate();
myOFDelegate();
void RunME();
};
#endif
和 myDelegate.m
include "myOFDelegate.h"
myOFDelegate::myOFDelegate(){ }
myOFDelegate::~myOFDelegate(){ }
void myOFDelegate::RunME(){
CCLog("call me");
}
我在我的 Hello 场景中调用 RunME 方法,点击菜单按钮,如下所示
myOFDelegate *ofDelegate = new myOFDelegate();
ofDelegate->RunME();
但我收到此错误消息
> Undefined symbols for architecture i386:
> "myOFDelegate::myOFDelegate()", referenced from:
> HelloWorld::CallThis() in HelloWorldScene.o "myOFDelegate::RunME()", referenced from:
> HelloWorld::CallThis() in HelloWorldScene.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with
> exit code 1 (use -v to see invocation)
当然,当我注释掉这两行时
myOFDelegate *ofDelegate = new myOFDelegate();
ofDelegate->RunME();
游戏完美编译并运行。
你能帮帮我吗,我这两天一直在拉头发,一直没搞清楚
问候 KK
【问题讨论】:
-
您应该从发布正确的代码开始。首先你的方法被声明为callingMe,你将它定义为RunME,但是错误是关于构造函数的,所以很难弄清楚到底出了什么问题
标签: c++ objective-c ios xcode cocos2d-x