Mac上利用Eclipse编译Cocos2d-x
目前使用较多的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的更多相关文章
- Mac上利用VScode配置c/c++开发环境
Mac上利用VScode配置c/c++开发环境 哭辽,Typora里面最好不要插入表情,不然保存会闪退 首先你要有一个vscode 在扩展里面下载c/c++ 第一步 ⬆+com+p 打开命令模式:选择 ...
- MAC上python+Eclipse+pydev环境搭建
转自:http://www.cnblogs.com/Bonker/p/3584707.html 本文重点介绍使用Eclipse+pydev插件来写Python代码, 以及在Mac上配置Eclipse ...
- Mac上利用Aria2加速百度网盘下载
百度网盘下载东西的速度那叫一个慢,特别是大文件,看着所需时间几个小时以上,让人很不舒服,本文记录自己在mac上利用工具Aria2加速的教程,windows下思路也是一样! 科普(可以不看) 这里顺带科 ...
- 记一次在mac上源码编译curl,使其支持NSS的过程
一.背景 在一次学习https原理的过程中,希望客户端指定特定的cipher suites来抓包分析SSL/TLS的握手过程,就想到了使用curl工具,而不是使用浏览器. 接下来使用man curl找 ...
- 在Mac上用自己编译出的DNX运行.NET程序
DNX的全称是.NET Execution Enviroment(.NET执行环境),它是.NET跨平台的一个重要角色.如果你关注.NET的跨平台,一定要关注DNX. 由于Mono 4.0的一个bug ...
- mac上Android反编译工具apktool、dex2jar入门
MAC上Apktool的安装 官网链接 image.png 使用步骤如图1-6 第一:下载一个shell脚本,保存的名字就是”apktool”,不要带.sh后缀.可以复制到sublimetext, ...
- 在Mac上利用压测工具Jmeter-Suite进行一次压测实践的保姆级详细步骤(参考腾讯云文章)
参考的文章 压测工具Jmeter-Suite详细操作步骤 写此文的目的 由于我是刚开始接触kubernetes和jmeter,所以在学习过程中遇到了很多很多问题,同时我很烦恼为什么网上没有文章是从真正 ...
- [大数据学习研究]1.在Mac上利用VirtualBox搭建本地虚拟机环境
1. 大数据和Hadoop 研究学习大数据,自然要从Hadoop开始. Hadoop不是一个简单的软件,而是有一些列软件形成的生态,其核心思想来自Google当初发布的三篇论文,后来做了开源的实现, ...
- Mac下利用eclipse打包cocos2dx安卓apk
上一篇博客中我们已经配置好了JDK和ANT,接下来我们就可以使用eclipse将我们开发好的cocos2dx项目进行打包了. 首先,我们需要准备好下面的内容 配置环境变量,打开"终端&quo ...
随机推荐
- SEO市场是在扩大还是缩小 Seoer终于会变成什么?
近期有两件全然背道而驰的事情同一时候发生.第一件事情是以SEO业务为主要业务的业者逐渐降低,很多原本是SEO的业者都纷纷转向其它业务.SEO业务反而变成副业.第二件事情是中小企业的SEO需求添加了.而 ...
- 在CTime类中重载<<和>>
程序代码: #include <iostream> using namespace std; class CTime//时间类 { private: unsigned short int ...
- Windows 下统计行数的命令
大家都知道在Linux下统计文本行数能够用wc -l 命令.比如: -bash-3.2$ cat pif_install.log | wc -l 712 但在Windows下怎样统计输出文 ...
- MySQL 讨厌哪种类型的查询
㈠ 任何查询都讨厌 只要是查询.MySQL都讨厌.执行查询最快的方式就是不去执行 缓存为王.比如Redis或者memcache ㈡ 查 ...
- hyper-V 装ubuntu15.04
- ETHERNET帧结构
以太网帧http://blog.csdn.net/guoshaobei/article/details/4768514 Ethernet的帧格式 (转) http://jiangqiaosun.bl ...
- QSplashScreen无法背景透明的解决办法(强制StyleSheet生效)
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::SplashScreen | Qt::FramelessWindowHint); setAttribute( ...
- python 拼写检查代码(怎样写一个拼写检查器)
原文:http://norvig.com/spell-correct.html 翻译:http://blog.youxu.info/spell-correct.html 怎样写一个拼写检查器 Pete ...
- JAVA学习第三十六课(经常使用对象API)— Set集合:HashSet集合演示
随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 .TreeSet ...
- android4.4组件分析--service组件
6 Service 6.1 service介绍 6.1.1. 基本介绍 Service是Android四大组件之中的一个(其余的是activit ...