c++ - 对 'MainScene::createScene()' 的 undefined reference collect2 : error

标签 c++ cocos2d-x

我得到了以下错误,但我的代码应该没有问题。因为我已经声明了 createScene 方法。如果有一些技巧或提示可以解决这个问题,那就太好了!

AppDelegate.cpp:82: error: undefined reference to 'MainScene::createScene()'
collect2: error: ld returned 1 exit status

AppDelegate.cpp:82:这是发生错误的地方

// create a scene. it's an autorelease object
auto scene = MainScene::createScene();

这是MainScene.cpp

#include "MainScene.h"

USING_NS_CC; //Means using cocos2d

MainScene::MainScene() {

}

MainScene::~MainScene() {

}

Scene* MainScene::createScene() {

   auto scene = Scene::create();
   auto layer = MainScene::create();

   scene->addChild(layer);
   return scene;
}

bool init() {
    if (!Layer::init()) {
        return false;
    }
    auto director = Director::getInstance();
    auto size = director->getWinSize();
    auto background = Sprite::create("background.png");
    background->setPosition(Vec2(size.width/2.0, size.height / 2.0));
    this->addChild(background);

    //initialize process
    return true;
}

这是MainScene.h

class MainScene: public cocos2d::Layer
{
protected:
    MainScene();
    virtual ~MainScene();
    bool init() override;

public:
    static cocos2d::Scene* createScene();
    CREATE_FUNC(MainScene);
};

最佳答案

我想你忘了定义 MainScene 类的 init() 方法

bool init() {
    ...
    ...
}

改成

bool MainScene::init(){
    ...
    ...  
}

关于c++ - 对 'MainScene::createScene()' 的 undefined reference collect2 : error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43722500/

相关文章:

c++ - 函数重载变得模棱两可

c++ - 遇到段错误 : It looks like my comparator is trying to compare nodes out of scope

c++ - __debugbreak 的可移植等效项

c++ - 渲染到 CCRenderTexture 不工作

c++ - cocos2d-x v3 CallFunc 作为参数/变量如何

c++ - 当 isTouchEnabled 为真时,CCMenuItemLabel 不起作用?

android - Cocos2dx - android apk 在启动时崩溃

c++ - 使用 complex<double> 的函数式转换的模糊转换

c++ - 从 void* 转换类型

c++ - 隐式构造函数可用于从 Base 派生的所有类型,但当前类型除外?