Cocos2D-X compile Linux Error: Undefined Reference
Cocos2D-X compile Linux Error: Undefined Reference
我是cocos2D-X (v 3.6)的新手,我使用Linux来编译和运行我的项目。当我尝试以下命令行时:
cocos compile -p linux
显示错误:
Linking CXX executable bin/MyGame
CMakeFiles/MyGame.dir/Classes/AppDelegate.cpp.o: In function `AppDelegate::applicationDidFinishLaunching()':
/home/caisar/MyCompany/MyGame/Classes/AppDelegate.cpp:53: undefined reference to `GraphicsScene::createScene()'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/MyGame] Error 1
make[1]: *** [CMakeFiles/MyGame.dir/all] Error 2
make: *** [all] Error 2
Error running command, return code: 2
这是我的GraphicsScene.h
:
#ifndef __GRAPHICS_SCENE_H__
#define __GRAPHICS_SCENE_H__
#include "cocos2d.h"
class GraphicsScene : public cocos2d::Layer{
public:
static cocos2d::Scene* createScene();
virtual bool init();
void menuCloseCallback(cocos2d::Ref* pSender);
CREATE_FUNC(GraphicsScene);
};
#endif
这是GraphicsScene.cpp
:
#include "GraphicsScene.h"
USING_NS_CC;
Scene* GraphicsScene::createScene(){
auto scene = Scene::create();
auto layer = GraphicsScene::create();
scene->addChild(layer);
return scene;
}
bool GraphicsScene::init(){
if(!Layer::init()){
return false;
}
auto sprite = Sprite::create("autobot.png");
sprite->setPosition(0,0);
this->addChild(sprite, 0);
return true;
}
void GraphicsScene::menuCloseCallback(Ref* pSender)
{
Director::getInstance()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
}
还有什么需要补充的吗?
我今天也有这个问题,并通过编辑PROJECT_PATH/CMakeLists.txt
文件解决了这个问题。必须在GAME_SRC
和GAME_HEADERS
部分中包含*.cpp和*.h文件路径。例如,在您的例子中,它必须是这样的:
set(GAME_SRC
Classes/AppDelegate.cpp
Classes/HelloWorld.cpp
Classes/GraphicsScene.cpp
${PLATFORM_SPECIFIC_SRC}
)
set(GAME_HEADERS
Classes/AppDelegate.h
Classes/HelloWorld.h
Classes/GraphicsScene.h
${PLATFORM_SPECIFIC_HEADERS}
)
希望它能工作!
我猜链接器没有找到GraphicsScene::createScene()的.cpp源文件。你应该将GraphicsScene.cpp添加到Android。可文件。就像我为我的windows项目做的那样。
LOCAL_SRC_FILES:= hellocpp/main.cpp
../../Classes/Graphic_Image.cpp
希望有帮助。谢谢。
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- Tensorflow c++ api undefined reference to 'tflite::D efaultErrorReporter()'
- 为什么在使用 SDL2 时仍然收到'undefined reference'链接器错误?
- OpenCV undefined reference to 'cv::imread(cv::String const&, int)'
- Libcurl c++ "undefined reference to" (Windows/MinGW/g++)
- 尝试使用 extern "C" 调用 C 中的C++方法,得到"undefined reference to"对象的链接器错误
- build error : undefined reference to `yyFlexLexer::yyFlexLex
- 安卓 NDK 制造。数百"undefined reference error"
- 当我尝试进行TPC-E测试时,实用程序抱怨"undefined reference"
- 声明和定义函数静态会产生"undefined reference to function_name()"
- C++ : "undefined reference to"可能是因为CMake文件
- 包含<iostream>时"Undefined reference"错误
- CMake 'undefined reference' CERN-ROOT 的错误
- 生成错误:"cannot find target for file"和"undefined reference"
- AppData\Local\Temp\cc59LXDc.o:test1.cpp: undefined reference to 'constructNewObjectOfClass
- YAML-cpp 编译错误:"undefined reference to YAML::LoadFile"
- 添加 cpp11 插件时出现错误消息"Undefined reference to boost (...)"