环境:

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到最新版,我更新之后这些报错都消失了

Ubuntu14.04+eclipse下cocos2d-x3.0正式版环境的搭建的更多相关文章

  1. cocos2d-x 3.0正式版 环境搭建 (解决载入失败,未能载入XXX包)

    cocos2d-x 3.0正式版最终公布了~ 等了好久~ 废话不多说,直接写方法. 1.下载安装vc2012 ,我用的是旗舰版,传送门:点击打开链接 2.下载cocos2d-x 3.0正式版,传送门: ...

  2. Linux下Hadoop2.6.0集群环境的搭建

    本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安装与配置 现在直接到Oracle官网(http:/ ...

  3. Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例

    Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ...

  4. Torch,Tensorflow使用: Ubuntu14.04(x64)+ CUDA8.0 安装 Torch和Tensorflow

    系统配置: Ubuntu14.04(x64) CUDA8.0 cudnn-8.0-linux-x64-v5.1.tgz(Tensorflow依赖) Anaconda 1. Torch安装 Torch是 ...

  5. Cocos2d-x 3.0正式版及android环境搭建

    开发环境是:mac + xcode + eclipse ,在win以下的环境和这个都是一样的,唯一不一样的就是环境变量的配置. 以下主要介绍cocos2d-x环境的设置以及android的环境搭建 1 ...

  6. Cocos2d-x v3.0正式版尝鲜体验【2】 Android平台移植

    今天没事又尝试了下3.0正式版关于Android平台的移植,把新建的项目移植了下.过程仅用了十分钟左右,什么概念?! 好吧,事实上我想说,这个版本号真的移植非常轻松啊,只是还没加上其它东西,只是就眼下 ...

  7. 【转】MyEclipse 9.0正式版官网下载(附Win+Llinux激活方法、汉化包)

    MyEclipse 9.0 经过 M1,M2,终于出了正式版(MyEclipse For Spring 还是 8.6.1).该版本集成了 Eclipse 3.6.1,支持 HTML5 和 JavaEE ...

  8. .NET Core 3.0正式版发布

    是的,.NET Core 3.0正式版发布了,令人兴奋. WPF 其实,.NET Core 2.1开始已经是个很完善的版本,3.0又带来了什么呢?我站在我的使用角度来看,最最令人振奋的就是:能用WPF ...

  9. Redis 3.0正式版发布,正式支持Redis集群

    Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...

随机推荐

  1. 关于linux下文件的权限问题

    今天在linux更新服务中的启动文件时,直接把更新的启动文件拷贝过来执行,报错:can't be execute 后来想了下列出了文件的详细信息中发现拷贝过去的执行文件是-r--r--r--(表示只有 ...

  2. Android学习之Handler消息

    Android系统规定,一些耗时的操作不能放在UI线程中去执行,这样会报一个ANR错误.所以为了避免该问题,我们需要开启一个新的线程去执行一些耗时操作:开启新的线程,将耗时的操作在新线程里面去执行, ...

  3. 探求C#.Net中ArrayList与Array的区别

     ArrayList与Array的区别概述     ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例 ...

  4. vmp3.0.9全保护拆分解析

    https://mp.weixin.qq.com/s/WO6w_L-cYwH5KB2rilZdag 以下为了避免插件干扰,故采用x64dbg原版进行分析. 首先我通过检测到调试器的弹窗进行栈回溯,定位 ...

  5. Objective-c官方文档 封装数据属性

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 很多对象需要跟踪信息为了执行他们的任务.一些对象设计模型一个或者多个值.例如NSNumber 类用来保存一个值或者自定义的类有一些属性.有一些对象不 ...

  6. Android设计和开发系列第二篇:Navigation Drawer(Develop)

    Creating a Navigation Drawer THIS LESSON TEACHES YOU TO: Create a Drawer Layout Initialize the Drawe ...

  7. WP8.1学习系列(第二十章)——添加控件和处理事件

    先决条件 添加控件 设置控件的名称 设置控件属性 创建事件处理程序 新控件 总结 相关主题 通过使用如按钮.文本框和组合框等控件,你可以创建应用的 UI. 下面将显示如何将控件添加到应用.处理控件时, ...

  8. 【VI】如何删除匹配指定字符串的行(已解决)

    命令: g/pattern/d 如,删除包含字母 hell 的行 g/hell/d 删除 不 匹配指定字符的行(未验证,有需要的朋友可以试一下) v/pattern/d g!/pattern/d

  9. 使用 webpack 优化资源

    在前端应用的优化中,对加载资源的大小控制极其的重要,大多数时候我们能做的是在打包编译的过程对资源进行大小控制.拆分与复用.本片文章中主要是基于 webpack 打包,以 React.vue 等生态开发 ...

  10. minix中二分查找bsearch的实现

    在看minix中bsearch实现的源代码之前,先学习一下C 语言中void类型以及void*类型的使用方法与技巧. void的含义: void的字面意思是“无类型”,void *则为“无类型指针”, ...