目前使用较多的Cocos2d-x开发平台是XCode,应该是由于大部分Cocos2d-x开发者都是iOS开发出生。但是当我们将XCode开发的Cocos2d-x工程发布Android版本时,每次都需要使用ndk将Cocos2d-x的C++代码编译一遍,然后再用Eclipse打开,这个过程比较麻烦。于是本人尝试在Eclipse中实时编译Cocos2d-x的工程,即可以随时修改或添加java和android代码后,点击Eclipse中的运行完成编译。

参考的编译Cocos2d-x的教程如下:

http://www.xuephp.com/main/detail.php?cid=32787

按以上的教程配置完成后,运行,依然会出现一些错误,如下:

错误1

make: *** [clean-box2d_static-armeabi] Error 2

这是ndkr8e的一个bug

解决方案

修改android-ndk-r8e/build/core/build-binary.mk

$(cleantarget): PRIVATE_CLEAN_FILES := ($(my)OBJS)

为:

$(cleantarget): PRIVATE_CLEAN_FILES := $($(my)OBJS

错误2

Type Symbol 'cocos2d' could not be resolved

没有引入Cocos2d-x的源文件

解决方案

1.right click project, and select Properties\C/C++ General\Paths and Symbols\Source location. Click Link Folder, check the Link to a folder in the file system checkbox, and browse to the cocos2dxdirectory inside the $COCOS2DX_HOME folder.( the same way as add Classes)

2.right click project and select Properties\C/C++ General\Path and Symbols\GNU C++. Add$(COCOS2DX_HOME)/CocosDenshion/include

错误3

Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml

最小SDK版本错误

解决方案

将AndroidManifest.xml文件中的android:minSdkVersion改为14

解决以上错误后,以后修改Java或C++代码直接在Eclipse中运行即可。但是当我们在Eclipse中创建新的C++类仍然会报错。因为还需要在工程中的Android.mk文件中添加相应的C++类名。但是每次添加类都要修改Android.mk会比较麻烦。在这里提一个解决方案,可以将Android.mk中的文件改成*.cpp的形式,例如:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := game_shared

LOCAL_MODULE_FILENAME := libgame

FILE_LIST := $(wildcard $(LOCAL_PATH)/../../Classes/Actions/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/Constants/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/Helpers/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GameObjects/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/Scenes/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/Singletons/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/JNICalls/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) LOCAL_SRC_FILES := helloworld/main.cpp LOCAL_SRC_FILES += $(FILE_LIST:$(LOCAL_PATH)/%=%) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static include $(BUILD_SHARED_LIBRARY) $(call import-module,CocosDenshion/android) $(call import-module,cocos2dx)

完成以上步骤,即可实现在Eclipse中实时编译Cocos2d-x的工程。

Mac上利用Eclipse编译Cocos2d-x的更多相关文章

  1. Mac上利用VScode配置c/c++开发环境

    Mac上利用VScode配置c/c++开发环境 哭辽,Typora里面最好不要插入表情,不然保存会闪退 首先你要有一个vscode 在扩展里面下载c/c++ 第一步 ⬆+com+p 打开命令模式:选择 ...

  2. MAC上python+Eclipse+pydev环境搭建

    转自:http://www.cnblogs.com/Bonker/p/3584707.html 本文重点介绍使用Eclipse+pydev插件来写Python代码,  以及在Mac上配置Eclipse ...

  3. Mac上利用Aria2加速百度网盘下载

    百度网盘下载东西的速度那叫一个慢,特别是大文件,看着所需时间几个小时以上,让人很不舒服,本文记录自己在mac上利用工具Aria2加速的教程,windows下思路也是一样! 科普(可以不看) 这里顺带科 ...

  4. 记一次在mac上源码编译curl,使其支持NSS的过程

    一.背景 在一次学习https原理的过程中,希望客户端指定特定的cipher suites来抓包分析SSL/TLS的握手过程,就想到了使用curl工具,而不是使用浏览器. 接下来使用man curl找 ...

  5. 在Mac上用自己编译出的DNX运行.NET程序

    DNX的全称是.NET Execution Enviroment(.NET执行环境),它是.NET跨平台的一个重要角色.如果你关注.NET的跨平台,一定要关注DNX. 由于Mono 4.0的一个bug ...

  6. mac上Android反编译工具apktool、dex2jar入门

    MAC上Apktool的安装 官网链接   image.png 使用步骤如图1-6 第一:下载一个shell脚本,保存的名字就是”apktool”,不要带.sh后缀.可以复制到sublimetext, ...

  7. 在Mac上利用压测工具Jmeter-Suite进行一次压测实践的保姆级详细步骤(参考腾讯云文章)

    参考的文章 压测工具Jmeter-Suite详细操作步骤 写此文的目的 由于我是刚开始接触kubernetes和jmeter,所以在学习过程中遇到了很多很多问题,同时我很烦恼为什么网上没有文章是从真正 ...

  8. [大数据学习研究]1.在Mac上利用VirtualBox搭建本地虚拟机环境

    1. 大数据和Hadoop 研究学习大数据,自然要从Hadoop开始. Hadoop不是一个简单的软件,而是有一些列软件形成的生态,其核心思想来自Google当初发布的三篇论文,后来做了开源的实现, ...

  9. Mac下利用eclipse打包cocos2dx安卓apk

    上一篇博客中我们已经配置好了JDK和ANT,接下来我们就可以使用eclipse将我们开发好的cocos2dx项目进行打包了. 首先,我们需要准备好下面的内容 配置环境变量,打开"终端&quo ...

随机推荐

  1. Performance Tuning guide 翻译 || Performance Tuning Guide 11G中新增特性

    CSDN 对格式支持比較弱.能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. Performance Tuning Guide  ...

  2. 怎样使用windows命令行,用notepad打开某文件夹下面的所有文件

    http://zhidao.baidu.com/question/2138815012359999388.html __________________________________________ ...

  3. 缩略图类库--ThumbLib使用简介

    //加载类库文件 require_once 'path/to/ThumbLib.inc.php'; //实例化类库,传入你要处理的图片的地址可以是网络地址,也可以是本地地址 $thumb = PhpT ...

  4. QuartusII中调用Modelsim的方法

    Modelsim的使用 1,  建立工程编译通过之后——证明实例工程无语法等简单错误.编写testbench 2,  将testbench 添加到工程中,进行编译通过.会在工程的file中看到test ...

  5. 转: Firefox 浏览器对 TABLE 中绝对定位元素包含块的判定有错误

    标准参考 元素的包含块 W3C CSS2.1 规范中规定,绝对定位元素的包含块(containing block),由离它最近的 position 特性值是 "absolute". ...

  6. php启用gzip压缩

    GZIP(GNU-ZIP)是一种压缩技术.经过GZIP压缩后页面大小可以变为原来的30%甚至更小.这样用户浏览的时候就会感觉很爽很愉快! 要实现GZIP压缩页面需要浏览器和服务器共同支持,实际上就是服 ...

  7. Nutch 是一个开源Java 实现的搜索引擎

    Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Nutch的创始人是Doug Cutting,他同时也是Lucene.Hado ...

  8. 基于visual Studio2013解决算法导论之030二叉查找树

     题目 二叉查找树 解决代码及点评 // 12二叉查找树.cpp : 定义控制台应用程序的入口点. // // 3 - 10二叉搜索树查找.cpp : 定义控制台应用程序的入口点. // #in ...

  9. iconv 文件编码转换

    iconv 文件编码转换 http://www.cnblogs.com/xuxm2007/archive/2010/11/09/1872379.html 查看iconv的支持的编码: $ iconv  ...

  10. 总结:js中4类修改样式的方法

    前言 最近在写一个扩展右键菜单的插件,既然是插件,想着一步到位,把相关的style样式设置都丢进js文件中,直接加载一个js文件便可以使用该插件,所以今天就研究了下js批量的插入样式的方法,即addS ...