Cocos2dx在Linux编译出现未定义的引用

在Classes文件夹下写好了自定义Scene的.h和.cpp文件。在使用命令:cocos run -p linux 编译运行项目时。就老是提示错误“未定义的引用”。

仔细检查了一下代码,都未发现任何的错误和遗漏。但编译就是不通过。

而项目默认自带的HelloWorldScene.h和HelloWorld.cpp编译却不存在这个错误。

经过分析,发现在项目的根目录下有一个文件叫“CMakeLists.txt”,用gedit打开此文件,定位到:

if( UNIX ) #assume linux
set(GAME_SRC
  proj.linux/main.cpp
  Classes/AppDelegate.cpp
  Classes/HelloWorldScene.cpp
)

从上面这里看到。在运行cocos run -p linux指令时。其实编译的cpp文件都是在上面这段代码里面定义的。若是未在这里声明自己编写的cpp文件,那就会出现未定义的引用错误,于是我加入自定义Scene的cpp文件:

if( UNIX ) #assume linux
set(GAME_SRC
  proj.linux/main.cpp
  Classes/AppDelegate.cpp
  Classes/HelloWorldScene.cpp
  Classes/MyScene.cpp
)

保存退出。此时我再运行命令cocos run -p linux

哟~终于跑起来了。

PS,对于cocos run -p android这个命令,在编译运行前,也必须在jni/Android.mk目录下声明所用到所有的cpp类,否则也会出错。

你可能感兴趣的:(C++,linux,cocos2d,cpp)