Ubuntu14.04+eclipse下cocos2d-x3.0正式版环境的搭建
环境:
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正式版环境的搭建的更多相关文章
- cocos2d-x 3.0正式版 环境搭建 (解决载入失败,未能载入XXX包)
cocos2d-x 3.0正式版最终公布了~ 等了好久~ 废话不多说,直接写方法. 1.下载安装vc2012 ,我用的是旗舰版,传送门:点击打开链接 2.下载cocos2d-x 3.0正式版,传送门: ...
- Linux下Hadoop2.6.0集群环境的搭建
本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安装与配置 现在直接到Oracle官网(http:/ ...
- Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例
Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ...
- 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是 ...
- Cocos2d-x 3.0正式版及android环境搭建
开发环境是:mac + xcode + eclipse ,在win以下的环境和这个都是一样的,唯一不一样的就是环境变量的配置. 以下主要介绍cocos2d-x环境的设置以及android的环境搭建 1 ...
- Cocos2d-x v3.0正式版尝鲜体验【2】 Android平台移植
今天没事又尝试了下3.0正式版关于Android平台的移植,把新建的项目移植了下.过程仅用了十分钟左右,什么概念?! 好吧,事实上我想说,这个版本号真的移植非常轻松啊,只是还没加上其它东西,只是就眼下 ...
- 【转】MyEclipse 9.0正式版官网下载(附Win+Llinux激活方法、汉化包)
MyEclipse 9.0 经过 M1,M2,终于出了正式版(MyEclipse For Spring 还是 8.6.1).该版本集成了 Eclipse 3.6.1,支持 HTML5 和 JavaEE ...
- .NET Core 3.0正式版发布
是的,.NET Core 3.0正式版发布了,令人兴奋. WPF 其实,.NET Core 2.1开始已经是个很完善的版本,3.0又带来了什么呢?我站在我的使用角度来看,最最令人振奋的就是:能用WPF ...
- Redis 3.0正式版发布,正式支持Redis集群
Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...
随机推荐
- 关于linux下文件的权限问题
今天在linux更新服务中的启动文件时,直接把更新的启动文件拷贝过来执行,报错:can't be execute 后来想了下列出了文件的详细信息中发现拷贝过去的执行文件是-r--r--r--(表示只有 ...
- Android学习之Handler消息
Android系统规定,一些耗时的操作不能放在UI线程中去执行,这样会报一个ANR错误.所以为了避免该问题,我们需要开启一个新的线程去执行一些耗时操作:开启新的线程,将耗时的操作在新线程里面去执行, ...
- 探求C#.Net中ArrayList与Array的区别
ArrayList与Array的区别概述 ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例 ...
- vmp3.0.9全保护拆分解析
https://mp.weixin.qq.com/s/WO6w_L-cYwH5KB2rilZdag 以下为了避免插件干扰,故采用x64dbg原版进行分析. 首先我通过检测到调试器的弹窗进行栈回溯,定位 ...
- Objective-c官方文档 封装数据属性
版权声明:原创作品,谢绝转载!否则将追究法律责任. 很多对象需要跟踪信息为了执行他们的任务.一些对象设计模型一个或者多个值.例如NSNumber 类用来保存一个值或者自定义的类有一些属性.有一些对象不 ...
- Android设计和开发系列第二篇:Navigation Drawer(Develop)
Creating a Navigation Drawer THIS LESSON TEACHES YOU TO: Create a Drawer Layout Initialize the Drawe ...
- WP8.1学习系列(第二十章)——添加控件和处理事件
先决条件 添加控件 设置控件的名称 设置控件属性 创建事件处理程序 新控件 总结 相关主题 通过使用如按钮.文本框和组合框等控件,你可以创建应用的 UI. 下面将显示如何将控件添加到应用.处理控件时, ...
- 【VI】如何删除匹配指定字符串的行(已解决)
命令: g/pattern/d 如,删除包含字母 hell 的行 g/hell/d 删除 不 匹配指定字符的行(未验证,有需要的朋友可以试一下) v/pattern/d g!/pattern/d
- 使用 webpack 优化资源
在前端应用的优化中,对加载资源的大小控制极其的重要,大多数时候我们能做的是在打包编译的过程对资源进行大小控制.拆分与复用.本片文章中主要是基于 webpack 打包,以 React.vue 等生态开发 ...
- minix中二分查找bsearch的实现
在看minix中bsearch实现的源代码之前,先学习一下C 语言中void类型以及void*类型的使用方法与技巧. void的含义: void的字面意思是“无类型”,void *则为“无类型指针”, ...