C++ ld:未找到架构armv7的符号-使用库?
我使用的是Cocos2D-X,给出了以下代码片段:C++ ld:未找到架构armv7的符号-使用库?,c++,cocos2d-x,C++,Cocos2d X,我使用的是Cocos2D-X,给出了以下代码片段: CCSwipeGestureRecognizer * swipe = CCSwipeGestureRecognizer::create(); swipe->setTarget(this, callfuncO_selector(GameplayScene::didSwipe)); swipe->setDirection(kSwipeGestureRecognizerDirectionRight | kSwipeGestureRecog
CCSwipeGestureRecognizer * swipe = CCSwipeGestureRecognizer::create();
swipe->setTarget(this, callfuncO_selector(GameplayScene::didSwipe));
swipe->setDirection(kSwipeGestureRecognizerDirectionRight | kSwipeGestureRecognizerDirectionLeft);
swipe->setCancelsTouchesInView(true);
this->addChild(swipe);
我复制了提供的CPP和H文件,并将它们添加到目标中。然而,出于某种原因。。。这一行:
swipe->setTarget(this, callfuncO_selector(GameplayScene::didSwipe));
给了我麻烦。我甚至不知道它在问我什么——更不用说链接什么了。包含并编译标题
Undefined symbols for architecture armv7:
"GameplayScene::didSwipe(cocos2d::CCObject*)", referenced from:
GameplayScene::init() in GameplayScene.o
ld: symbol(s) not found for architecture armv7
注释掉setTarget行会使一切正常。这里简单的回答是函数定义不正确。它的定义是:
void didSwipe(CCObject* obj)
{
exit(0);
}
应该是:
void GameplayScene::didSwipe(CCObject* obj)
{
exit(0);
}
也就是说,实现类的成员函数,而不仅仅是文件中的函数
但是,我想强调这一点,虽然这可能是确切问题的答案,但我不认为这是为什么这是一个问题的答案。
某个编辑可能会进来清理这个话题,但我还是会把它放进去
鉴于:
是的,我们都违反了这些规则。“我甚至不知道它在问我什么”-可能我们也不知道,因为您没有在问题中输入准确、完整的错误信息。我不得不假设缺少的是
callfuncO_selector
?@WhozCraig我以为标题是所有相关的——但我编辑了全文。我永远不会停止让我惊讶的是,那些不知道代码有什么问题的人觉得有资格确定哪些信息是相关的,哪些是不相关的!你能在游戏场景中发布你的didSwipe(…)方法的实现吗?H:void didSwipe(cObject*obj);CPP:void didSwipe(CCObject*obj){exit(0);}