Cocos2d-x - clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

时间:2013-09-17 23:45:41

标签: c++ ios6 xcode4.5 cocos2d-x

当我从“Cocos2d-x初学者指南”一书中做一个教程(空气曲棍球)时,我在Cocos2d-x(2.1.5)中收到这些消息。

我已经检查了Xcode中的所有“#include”,BuildPhases等,并在“编译源代码”(大约250个文件)中执行了“验证设置”并筛选了互联网,并希望任何人对此进行查看。我还没有在.cpp文件中引用它们。

顺便说一下,本书中的Cocos2d-x版本与我使用的版本不一样,我查看了图书网站并从作者那里找到了这个版本:the Authors comment on the releases for the tutorial(s)

这是我第一次尝试非Objective-C&的cocos2d-X。

GameLayer.h:

#ifndef __GAMELAYER_H__
#define __GAMELAYER_H__

#define GOAL_WIDTH 400

#include "cocos2d.h"
#include "GameSprite.h"

using namespace cocos2d;

class GameLayer : public cocos2d::CCLayer {

GameSprite  *_player1;
GameSprite  *_player2;
GameSprite  *_ball;

CCArray     *_players;
CCLabelTTF  *_player1ScoreLabel;
CCLabelTTF  *_player2ScoreLabel;

CCSize      _screenSize;

int _player1Score;
int _player2Score;

void playerScore (int player);

public:

~GameLayer();

virtual bool init();

static CCScene *scene();

CREATE_FUNC(GameLayer);

virtual void ccTouchesBegan(CCSet* pTouches, CCEvent* event);
virtual void ccTouchesMoved(CCSet* pTouches, CCEvent* event);
virtual void ccTouchesEnded(CCSet* pTouches, CCEvent* event);

void update (float dt);

};

#endif // __GAMELAYER_H__

消息:

clang: warning: argument unused during compilation: '-websockets'
Undefined symbols for architecture i386:
  "GameLayer::ccTouchesBegan(cocos2d::CCSet*, cocos2d::CCEvent*)", referenced from:
  vtable for GameLayer in GameLayer.o
  "GameLayer::ccTouchesEnded(cocos2d::CCSet*, cocos2d::CCEvent*)", referenced from:
  vtable for GameLayer in GameLayer.o
  "GameLayer::ccTouchesMoved(cocos2d::CCSet*, cocos2d::CCEvent*)", referenced from:
  vtable for GameLayer in GameLayer.o
  "GameLayer::update(float)", referenced from:
  vtable for GameLayer in GameLayer.o
  "non-virtual thunk to GameLayer::ccTouchesBegan(cocos2d::CCSet*, cocos2d::CCEvent*)", referenced from:
  vtable for GameLayer in GameLayer.o
  "non-virtual thunk to GameLayer::ccTouchesEnded(cocos2d::CCSet*, cocos2d::CCEvent*)", referenced from:
  vtable for GameLayer in GameLayer.o
  "non-virtual thunk to GameLayer::ccTouchesMoved(cocos2d::CCSet*, cocos2d::CCEvent*)", referenced from:
  vtable for GameLayer in GameLayer.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1 个答案:

答案 0 :(得分:1)

您没有在GameLayer.ccp中实现这些功能。在本教程之后,它将教你如何实现它们。