刚才我在我的mac上创建了一个cocos2d-x项目,Iam使用ios版本项目进行开发。我是cocos2dx和cpp的新手。当我第一次在Xcode中运行项目时,它运行良好。但是当我在HelloWorldScene.h文件中添加touches方法时,它显示错误,因为我运行项目。我添加的是在我添加命名空间cocos2d之后和静态方法CREATE_FUNC(HelloWorld)之后;我添加了触摸事件方法,
virtual void ccTouchesEnded(CCSet* pTouches, CCEvent* event);
当我构建并运行项目时出现错误,错误是。
Undefined symbols for architecture i386:
"HelloWorld::ccTouchesEnded(cocos2d::CCSet*, cocos2d::CCEvent*)", referenced from:
vtable for HelloWorld in HelloWorldScene.o
"non-virtual thunk to HelloWorld::ccTouchesEnded(cocos2d::CCSet*, cocos2d::CCEvent*)", referenced from:
vtable for HelloWorld 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)
答案 0 :(得分:0)
对于虚函数,在.h文件中,定义为:
virtual void ccTouchesEnded(CCSet* pTouches, CCEvent* event);
然后在.cpp文件中,不需要'虚拟':
void HelloWorld::ccTouchesEnded(CCSet* pTouches, CCEvent* event){ ... };
我猜问题就在这里。