0

Cocos2d-x (2.1.5) で本「Cocos2d-x ビギナー ガイド」のチュートリアル (Air Hockey) を実行すると、これらのメッセージが表示されます。

Xcodeですべての「#include」、BuildPhasesなどをチェックし、「コンパイルソース」(約250ファイル)で「設定の検証」を実行し、インターネットをスクリーニングしました。私はまだ .cpp ファイルでそれらを参照していません。

ところで、本の Cocos2d-x バージョンは私が使用しているものと同じではありません。本のウェブサイトをチェックしたところ、著者からこれを見つけました:チュートリアルのリリースに関する著者のコメント

これは、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)
4

1 に答える 1

1

これらの関数を GameLayer.ccp に実装していません。チュートリアルに従って、それらを実装する方法を説明します。

于 2013-09-18T08:40:04.903 に答える