博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ubuntu14.04+eclipse下cocos2d-x3.0正式版环境的搭建
阅读量:5228 次
发布时间:2019-06-14

本文共 2570 字,大约阅读时间需要 8 分钟。

环境:

ubuntu14.04

adt-bundle-linux-x86_64

android-ndk-r9d-linux-x86_64

cocos2d-x-3.0正式版

apache-ant 1.9.3

python 2.7(ubuntu自带)

加入环境变量

export ANDROID_SDK_ROOT=/home/yangming/adt-bundle-linux/sdk

export PATH=${PATH}:/$ANDROID_SDK_ROOT/tools/
export PATH=${PATH}:/$ANDROID_SDK_ROOT/platform-tools/
export NDK_ROOT=/home/yangming/adt-bundle-linux/android-ndk-r9d
export PATH=${PATH}:/$NDK_ROOT

export ANT_ROOT=/opt/apache-ant-1.9.3
export PATH=${PATH}:/$ANT_ROOT/bin.

终端下执行build文件夹里的install-deps-linux.sh安装gcc等编译须要的环境,这里有硬性要求,gcc至少4.8。opengl至少1.5。低于标准可能编译只是去,编译过去也执行不了。

终端下执行setup.py,cocos new创建项目,这个各个平台应该都一样的。

得到如图所看到的文件夹

cd test/proj.linux/
进入linuxproject文件夹。执行
cmake ..
生成makefile文件。如图

打开eclipse,导入proj.linuxproject,选择C/C++,选择Existing Code as Makefile Project,选linux gcc

此时这个项目已经能够直接编译执行了,可是源代码在文件夹外看不到,我们再来引入源代码。

右键单击project->Properties->C/C++ General->Paths and Symbols->Source Location->Link Folder,依次导入project文件夹里的Classes。Resources。cocos2d。

cocos2d因为linuxproject里有同名文件夹。能够改个名

如今project应该是这个样子,打开一个文件,发现有非常多错误。

看一下错误的原因。以这个Director为例。我们打开他的头文件。发现CC_DLL这个宏没有被识别

这个宏是在哪里定义呢。在各个平台各自的CCPlatformDefine.h里,

能够看到。因为

#if CC_TARGET_PLATFORM == CC_PLATFORM_LINUX

没有成立,导致这个文件的内容全都无效,我们能够找一下CC_TARGET_PLATFORM。他在/test.linux/cocos2dsrc/cocos/base/CCPlatformConfig.h。这文件中列出各个平台的编号,CC_TARGET_PLATFORM先被设置为0。再在以下推断后重设。我们看到linux这行是灰色的。就是#if defined(LINUX)没有成立。我们仅仅须要在Paths and Symbols里加入LINUX參数和CC_DLL,LINUX值为1。CC_DLL值为空。如图

如图。

必须要把Managed Build Setting 置于 GCC Built-in Compiler Settings之上,在Providers里先取消GCC Built-in Compiler Settings。点Apply应用。再选中GCC Built-in Compiler Settings,再点Apply,回到Entries里,Managed Build Setting就跑到 GCC Built-in Compiler Settings上面了

好,如今AppDelegate.cpp已经不报错了,大部分文件都正常了,但另一小部分还会报错,比方HelloWorldScene.cpp

MenuItemImage这个类报错,我们找到MenuItemImage.h,发现function这行报错,std::function是c++11特性,我们须要让cdt识别c++11特性。

找到functional文件,这里的问题和上面的平台式识别问题相似,#if __cplusplus >= 201103L这个推断没有成立,__cplusplus这个值默认值是199711L,我们须要在Paths and Symbols里加入__cplusplus=201103L,同一时候加入-std=c++11,如图

这里能够点Export Settings导出设置到xml,新project导入就能够

好。如今整个project都不报错了,代码提示也都能够正常使用。我们点小锤子build。開始编译了。事实上这个project生成完makefile文件后就能够正常编译。上面的报错仅仅是eclipse cdt的设置问题。并非真正的错误。

编译成功后。run as Local C/C++ Application,选MyGame,

成功!

自建类须要在CMakeLists.txt里加入。又一次执行cmake,生成makefile才干够编译

set(GAME_SRC  proj.linux/main.cpp  Classes/AppDelegate.cpp  Classes/HelloWorldScene.cpp)

另一些莫名其妙的报错。如Return has value, in function returning void, must implement the inherited pure virtual method,Invalid arguments ' Candidates are: ,Member declaration not found
之类的。请更新CDT到最新版,我更新之后这些报错都消失了

转载于:https://www.cnblogs.com/xfgnongmin/p/10805333.html

你可能感兴趣的文章
SSH框架整合总结
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
Python面向对象之:三大特性:继承,封装,多态以及类的约束
查看>>
微信小程序实现类似JQuery siblings()的方法
查看>>
md5sum命令详解
查看>>
[bzoj1004] [HNOI2008] Cards
查看>>
使用 Swoole 来加速你的 Laravel 应用
查看>>
TextWatcher原因activity内存泄漏问题
查看>>
Merge into的使用具体解释-你Merge了没有
查看>>
Linux安装程序Anaconda分析
查看>>
如何在chrome上打开SSL3.0
查看>>
应该是实例化对象的没有对属性赋值时,自动赋值为null,但不是空指针对象引用...
查看>>
从网易与淘宝的font-size思考前端设计稿与工作流
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>
搜索引擎-SHODAN
查看>>
poj_3159_Candies
查看>>
CentOS目录结构
查看>>
网络爬虫基本练习
查看>>