关于cocos下编译报错问题

前言

本文是关于初学者折腾COCOS 2D X遇到的一个编译错误,错误详情如下:

workspace/MyGame/MyGame/proj.android/app/jni/../../../Classes/HelloWorldScene.cpp:180: error: undefined reference to 'MenuScene::createScene()'

这个错误说 类MenuScene的方法createScene没有定义,实际上我已经定义了,而且对比了累名字符串,没有字母写错的情况。
头文件中声明如下:

public:
    static cocos2d::Scene* createScene();

cpp文件实现如下:

#include "MenuScene.h"
#include "ui/CocosGUI.h"

USING_NS_CC;

Scene* MenuScene::createScene(){
    return MenuScene::create();
}

但是就是说我没有定义。


好了回顾新增次类的过程。我是依葫芦画瓢仿照HelloWorldScene类来写的。我就想,既然HelloWorldScene能够正确编译,那么我新增的类,可能是莫个地方没有完成。所以就在android studio中全局搜索HelloWorldScene类名,发现在一个Android.mk文件中有定义。

LOCAL_SRC_FILES := $(LOCAL_PATH)/../../../Classes/HelloWorldScene.cpp \

现在明白了,原来在studio集成开发环境中,添加新CPP类要在编译脚本中添加相应的类。否则编译报错。所以在Android文件中添加我的类就可以 了:

LOCAL_SRC_FILES := $(LOCAL_PATH)/../../../Classes/HelloWorldScene.cpp \
                   $(LOCAL_PATH)/../../../Classes/MenuScene.cpp

再次编译,完美通过。

你可能感兴趣的:(cocos,2d,程序优化)