当前位置:首页 » 安卓系统 » cocos2dxandroid编译

cocos2dxandroid编译

发布时间: 2022-06-24 12:11:27

❶ 如何用CCache加速Cocos2d-x Android版本的编译

CCache是C/C++的编译器缓存。当相同的编译被再次编译时,进行检测并通过之前编译的缓存进行编译加速。所以我们可以通过这种方法给Cocos2d-x Android的编译加速。使用这种方法,在i7 CPU的Macbook Pro Retina上编译,我们的Cocos2d-x Android工程编译时间可以从10分钟减少到30秒!!

注意:以下操作仅对Mac OS X有效。

安装
我们使用homebrew:

1

brew
install --HEAD ccache

或者通过源码安装:

1
2
3
4
5
6
7

git
clone https://github.com/jrosdahl/ccache.git
cd
ccache
./autogen.sh
./configure
make
make
install
cp
/usr/local/bin/ccache /usr/bin/

注意:默认的安装路径是 /usr/local/bin,我们需要拷贝ccache到/usr/bin/,不然ndk-build会找不到并报错

如果终端报错说找不到autoheader,这说明我们需要先安装automake:

1

brew
install automake

但是,如果如果报错是说找不到brew,我们就必须先安装brew:

1

ruby
-e "$(curl
-fsSL
https://raw.github.com/Homebrew/homebrew/go/install)"

确保ccache的路径可以被$PATH识别,运行命令:

1

ccache

如果你看到帮助信息,恭喜你,安装成功了!

在android上配置编译环境
我们必须先设置以下环境变量来使用ccache:

1
2
3
4

vim
~/.bash_profile
Add
following lines:
export
USE_CCACHE=1
export
NDK_CCACHE=/usr/local/bin/ccache

运行命令行:

1

ccache
-M 10G

这个命令将缓存大小设置为10G。当然,如果你的硬盘有足够的空间,你也可以将此设置为50G。

然后,我们跳转到NDK目录,如果你忘了这个路径,你可以使用以下命令来查看:

1

which
ndk-build

以下是我的输出结果:

1

/developer/android/android-ndk-r9b/ndk-build

所以,我的NDK_ROOT是:

1

/developer/android/android-ndk-r9b

打开文件:$NDK_ROOT/build/core/default-build-commands.mk

找到以下章节并加入ccache,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13

ifneq
($(findstring ccc-analyzer,$(CC)),)
TARGET_CC
= $(CC)
else
TARGET_CC
= ccache $(TOOLCHAIN_PREFIX)gcc #Add ccache support
endif
TARGET_CFLAGS
=
TARGET_CONLYFLAGS
=
ifneq
($(findstring c++-analyzer,$(CXX)),)
TARGET_CXX
= $(CXX)
else
TARGET_CXX
= ccache $(TOOLCHAIN_PREFIX)g++ #Add ccache support
endif
TARGET_CXXFLAGS
= $(TARGET_CFLAGS) -fno-exceptions -fno-rtti

编译cocos2d-x游戏
选择cocos2d-x根目录,运行:

1

python
build/android-build.py -p 10 cpp-tests

新建一个终端窗口,运行:

1

ccache
-s

这个命令会打印出ccache状态,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

cache
directory /Users/heliclei/.ccache
primary
config /Users/heliclei/.ccache/ccache.conf
secondary
config (readonly) /usr/local/etc/ccache.conf
cache
hit (direct) 13588
cache
hit (preprocessed) 11145
cache
miss 696
called
for

link 1
called
for

preprocessing 14
preprocessor
error 1
can't
use precompiled header 129
no
input file 5
files
in cache 32222
cache
size 5.4 GB
max
cache size 30.0 GB

如果缓存的高速缓存命中(cache hit)和缓存大小(cache size)均为0,这就表示ccache没有运行,我们必须从新检查配置。

在Xcode中部署
配置Xcode(5.1)的ccache环境有点麻烦。我确实能调用ccache,但貌似没有增加编译速度。如果你有好的方法解决这个问题,请到github上为本篇教程提交pr!不过我们还是看看设置方法:

首先,我们添加2个自定义宏(user-defined macros)到cocos2d_libs的编译选项中:

1
2

CC=$(SOURCE_ROOT)/../tools/xcode_ccache_wrapper
LDPLUSPLUS=$(DT_TOOLCHAIN_DIR)/usr/bin/clang++

然后,我们需要在$(COCOS2dX_ROOT)/tools/路径下创建名为xcode_ccache_wrapper的脚本

1
2
3
4

#!/bin/bash
export
CCACHE_CPP2=yes
export
CCACHE_LOGFILE=~/Desktop/ccache.log
exec
/usr/local/bin/ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Qunused-arguments
"$@"

设置完成,我们就可以快乐的在Xcode中编译了!

打开ccache.log可以查看cache工作状态。

❷ cocos2dx在windows下开发怎么编译成apk

下面一段是网络的说明:
Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhone 8.[1]Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-X发展的重点是围绕Cocos2d跨平台。Cocos2d-x提供的框架外,手机游戏,可以写 在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x[2]项目可以很容易地建立和运行iOS,Android 的三星Bada,黑莓Blackberry操作系统和更多。Cocos2d-x还支持Windows、Mac和linux等桌面操作系统,因此,我们可以 编写的源代码很容易在桌面操作系统中编辑和调试。

总的来说,cocos2dx的android交叉编译环境还是蛮麻烦的。下面内容就是我一步一步实现的过程。
第一部分 安装
一、Cygwin安装
这个安装比较简单,网上也有大把的例子,这里我只是简述一下。
首先去官网www.cygwin.com下载安装,安装包分32位和64位两种.视情况选择了。因为只是编译,这里选择的是32位版本。
下载地址:http://cygwin.com/setup-x86.exe
然后默认安装,在安装源的时候,选择
http://mirrors.sohu.com/cygwin 或 http://mirrors.163.com/cygwin ,哪个好用,就哪个。
安装的时候,把开发包都选上就可以了。
我这里是把cygwin安装在c:\cygwin目录下面了。
注:这里默认的vi不是我们常用的vim,使用起来会很不习惯,你可以根据实际情况下载,在安装的时候,选择编辑器的vim,然后就可以用了。如果没有vim,你用的时候在vi命令行输入set nocp,就可以正常习惯使用了。
二、 adt-bundle安装
现在adt-bundle都集成了下面的功能,这样就不用再去配置eclipse插件了。
l Eclipse + ADT plugin
l Android SDK Tools
l Android Platform-tools
l The latest Android platform
l The latest Android system image for the emulator
下载地址:
Adt-bundle也同样分32位和64位的,在这里照样下载32位的版本
http://dl.google.com/android/adt/adt-bundle-windows-x86-20131030.zip。64位的地址我也加上http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20131030.zip
下载完成后,解压就可以使用。我这里是解压到e:\adt-bundle
里面有eclipse,sdk两个目录和一个SDK Manager管理软件。运行SDK Manager可以下载你需要的SDK版本。
注意:你下载的java也要对应的32位和64位的环境,否则eclipse将会启动不了。牢骚一句,oracle把java和mysql并入后,真是开源的最大悲剧。你去下载它,就明白了。祝愿oracle早点倒闭。
三、ndk安装
下载地址:
32位下载地址
http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86-legacy-toolchains.zip
http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86.zip
64位下载地址
http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86_64-legacy-toolchains.zip
http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86_64.zip
然后解压就可以了,我这里解压到
E:\android-ndk-r9b
四、cocos2dx安装
我这里下载的版本是cocos2dx v2.2。同时还有一个免费的编辑器CocoStudio,它提供了UI和动画,资源编辑功能。可以不用mac下面那个收费的软件了。
今天突然http://www.cocos2d-x.org/怎么都下载不了,没办法,只好到https://github.com/cocos2d/cocos2d-x/这里下载了。找到对应的2.2版本。
Cocos2dx下载地址:
https://codeload.github.com/cocos2d/cocos2d-x/zip/cocos2d-x-2.2
Cocostudio下载地址:
http://d001.download.appget.cn/CocoStudio/DownLoad/v1.0.0.1/CocoStudio_Full_V1.0.0.1.exe
然后cocostudio默认安装就可以了,我这里把cocos2dx解压到e:/cocos2dx
五、python安装
因为,cocos2dx创建工程,需要python,所以这里还需要下载python,去他的官网http://www.python.org/下载就可以了
下载地址:
http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi 这个下载32位版本就可以了。然后默认安装。我这里安装到了C:\Python27
六、ant安装
这个是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。这里在生成apk的时候,也用到了。所以也要下载安装。
http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.2-bin.zip
解压到c:\ant就可以了
到这里,所以需要的软件,都已经下载,并安装了。
第二部分:配置
第一步:新建环境变量
点windows的开始菜单-〉计算机 右键菜单选择属性,弹出属性对话框。然后选择高级系统设置,如下图

然后选择环境变量
增加
ANT_HOME=C:\ant
PYTHON_HOME=C:\Python27
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_16
NDK_ROOT=E:\android-ndk-r9b
ANDROID_SDK=E:\adt-bundle\sdk
然后编辑环境变量path,追加 %JAVA_HOME%\bin;%ANT_HOME%\bin;%PYTHON_HOME%;%NDK_ROOT%;%ANDROID_SDK%\tools;%ANDROID_SDK%\platform-tools;
这样,就可以在CMD窗口执行相关的命令了。
第三部分 cocos2dx的工程准备
第一步:增加android_update.bat
在ant生成apk的时候,会需要知道,你编译的目标是什么版本和src.dir等信息。创建这个工程,就是为了自动更新它。批处理的内容是
android update project -p . -t android-10
该文件建好后,命名为android_update.bat,放在E:\cocos2dx\template\multi-platform-cpp\proj.android
注意,请先确认你的ANDROID_SDK是否安装了对就的版本,android-10是对应的是android2.3,其他的版本请用对应的数字。执行e:\adt-bundle\SDK Manager.exe,如下图所示:

这里的数字是19
那么批处理的内容改为
android update project -p . -t android-19
第二步:修改build_native.sh
该文件在E:\cocos2dx\template\multi-platform-cpp\proj.android目录中,因为在执行build_native.sh的时候,会出现的权限的问题,所以在这个脚本中,增加了权限设置,来解决这个问题。
在第67行后面,也就是复制资源的后面增加下面一行
chmod 666 -R "$APP_ANDROID_ROOT"/assets就可以了。如下图所示

第三步,创建工程复制批处理
在cocos2dx的2.2中,已经少了一些批处理来创建工程,现在全部改用python来创建工程。
现在到E:\cocos2dx\tools\project-creator下,创建一个批处理demo.bat,内容如下
python create_project.py -project %~n0% -package com.android.zdhsoft -language cpp
x ..\..\cocos2dx\platform\android\java\src\* ..\..\projects\%~n0%\proj.android\src /E
上面批处理的
第一行的意思是,建一个工程为%~n0%的工程,包名是com.android.zdhsoft,使用的语言是cpp。%~n0%在批处理表示的是 批处理的文件名,在demo.bat中,%~n0%的值是demo。使用该批处理的好处是,如果建议某一个工程,只有把批处理复制一个,然后重新命名就可 以了。如命名为sample.bat,执行后,就可以行到一个sample的cocos2dx工程。
创建的工程在E:\cocos2dx\projects目录中。
第二行的意思,复制编译andiroid工程需要的java文件。否则编译的时候,会提示找不到对应的类。

❸ cocos2dx 2.2.1工程编译android版本,有release和debug之分吗

您好,很高兴能帮助您
1. 下载cocos2dx 2.2.1
去cocos2dx官网下载就好,最好是2.2.1版本。3.0版本变化比较大,也没测试过。

3. 创建工程
使用cocos2dx目录下的tools/project-creator/create_project.py创建一个工程。

4. 编译android版本
网上很多文章说,编译cocos2dx的Android版本时需要安装cygwin之类的,其实这对于目前的ndk版本来说是不必要的,因为高版本的ndk都集成了cygwin的一些功能。我这里使用的是ndk r9d。下面来说一下操作步骤。
我编译的习惯是直接在jni目录下预先ndk-build命令,因为在Windows下使用.sh结尾的文件太怪异了。首先来看一下build_native.sh干的工作:

这是build_native.sh中实际工作的部分。可以看到它使用NDK_ROOT下的ndk-build来编译,还导入了NDK_MODULE_PATH, 这个NDK_MODULE_PATH是为Android.mk中的import-mole提供路径选择。
现在来导入NDK_MODEL_APTH, 在Android.mk的import-mole之前加上cocos2dx中的几个路径:

$(call import-add-path, G:/cocos2dx)
$(call import-add-path, G:/cocos2dx/cocos2dx/platform/third_party/android/prebuilt)
运行ndk-build, 编译。

编译时可能出现这样的错误:error: GLES2/gl2.h: No such file or directory,这是因为低版本的Android版本不支持opengl es2.0,在Application.mk中加上:

APP_PLATFORM := android-17

5. 生成apk包
在eclipse下打开创建的工程,导入相关的包后,在AndroidMenifest.xml中加入:

android:debuggable="true"

表明这是一个可以调试的包。运行,结果出现:

这是因为该工程默认使用build_native.sh编译:

因为build_native.sh现在已经没用了,所以把它改成:

这个意思是,直接使用NDK_ROOT环境变量下的ndk-build.cmd来编译工程,编译成debug版本,编译成armeabi和armeabi-v7a两种指令格式的库,执行这个命令的目录是工程目录下的jni文件夹。debug版本和armeabi-v7b主要是为了后面使用visualGDB调试做准备。
再编译,就可以生成apk包了。

VisualGDB调试
1. 下载并安装VisualGDB, 安装完成后,在Visual Studio的目录中可以看到Android选项:

2. 配置VisualGDB, 在Android -> Setup SDK/NDK location

主要配置JDK,SDK,NDK,ANT路径
3. 设置要调试的apk包。Android -> Debug a Custom APK file

4 设置完成后,在代码中设置断点,点击Debug, 开始调试

5. 等apk安装完成后,程序会运行到断点出,就可以开始用Visual Studio调试了

你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,

❹ cocos2dx怎么编译到android

1、配置jar,ant环境变量,同时配置sdk路径,环境命于下面build.xml添加的一致为 ANDROID_HOME
2、清楚project.properties中的 android.library.reference 对cocos2d项目的引用,在3中改为引用对应的包。 清楚local.properties 中对sdk路径的引用,并在build.xml中改为使用环境变量。
3、复制 E:\test\cocos2d\cocos\platform\android\java\bin\ 下生成的 classes.jar到libs目录下。
这样在执行cmd命令下执行ant release即可进行编译,为了方便使用,可以添加一个bat文件,内容写 ant release即可。
最后,将下列的文件上传svn,策划仅需获得这些文件就可以在双击release.bat后进行编译了。

❺ cocos2dx 3.16怎么编译

先给自己科普一下, android sdk 是给java开发者用的, 咱C++开发者用的是android ndk, 所以就是使用ndk来编译cocos2dx程序了

使用命令行创建一个项目, 我这里创建的是一个lua项目:cocos new lua_proj2 -p com.company_name.program_name -l lua -d d:\xxx\xxx
此时创建了一个DEMO程序, 此时就可以使用cocos命令生成一个apk包, 进入到目录lua_proj2\frameworks\runtime-src下面, 在此目录下面执行命令cocos compile -p android 就会生成一个apk包, 把这个拖到genymotion上面, 就安装跑起来了.
上面说的是不使用eclipse的方式来生成一个apk包, 下面记录一下在eclipse中加载lua_proj2这个项目, 并生成apk包的过程. 为什么一定要将cocos2dx项目导入到eclipse中来生成apk包呢, 因为在eclipse中可以连接AVD来调试android程序, 再者, eclipse可以运行在linux环境下面, 后面我打算在linux进行开发, 所以这一步是一定要跨出去的

打开eclipse, 加载lua_proj2项目, 在此注意一下, 不需要加载libcocos2dx这个项目, 只要加载lua_proj2这个自己新建一项目即可
在eclipse中右击lua_proj2 -> Properties. 出现Properties for lua_proj2框框

创建一个新的builder

第一个红框是builder名称, 随便填写, 第二个红框框是NDK生成工具, 即, 使用此工具来编译C++项目, 第三个红框框是工作目录, 此处我使用lua_proj2项目目录作为工作目录, 切换到Environment选项卡, 新建一个在此生成器中使用的环境变量NDK_MODULE_PATH, 值是......\lua_proj2\frameworks\cocos2d-x\cocos;......\lua_proj2\frameworks\cocos2d-x;......\lua_proj2\frameworks\cocos2d-x\external, 前面的.......是绝对目录的省略, 这里要输入绝对路径名称, 在此我就不写绝对路径了.

一路OK下去, 到下面这个画面

这个就新建立的builder, Project->Build Project

出现大量的error: 'override' does not name a type错误, 这是由于NDK的版本太低了, override是C++11中才有的关键字, 而到NDKr10才支持C++11, 所以要升级NDK. 到官网去下载吧
不大, 400多M的样子, 更新完成之后, 看一下ndk\toolchains目录下面的编译器, 我的目录是下面这样子的

我很想使用clang来编译, 但是现阶段我还不会配置, 就用GCC吧, x86-4.6 & x86-4.8两个版本的GCC, 4.8的支持C++11
在Application.mk中添加一句NDK_TOOLCHAIN_VERSION = 4.8 就是指定使用GCC4.8来编译cocos2dx项目, 跑起来了, 下面是eclipse跑起来的console输出

跟命令行下执行cocos compile -p android 跑出来的是一样的, 都是在编译程序. 下面进入到在eclipse下面调试程序

❻ 如何用android studio开发cocos2dx

第一步,要进行下载安装啦,可以访问http://www.cocos2d-x.org/download网站下载
现在最新的版本是v3.13.1
Cocos2d-x 是我们需要的资源包;
cocos Creator 这个是cocos开发工具,可以跨平台开发!
第二步:具体的安装使用和介绍可以参考中文版文档http://www.cocos.com/docs/native/进行查看

在Android Studio上创建第一个关于cocos2d-x的“hello world”项目:

1. 步骤一

:在命令行里敲出命令:

cocos new testApp -p com.coco2dx.org -l cpp -d ./
1
1
参数说明:

testApp为项目名称
-p后面接包名
-l后面接开发语言类型,有cpp, lua, js三种类型
-d后面接项目存放的目录
如果你没有配置环境变量,可以这么做:
进入到目录cocos2d-x-3.2alpha0/tools/cocos2d-console/bin/cocos.py

打开终端运行cocos.py脚本创建文件

python cocos.py new testApp -p com.coco2dx.org -l cpp -d ~/Desktop
1
1
2. 步骤二

打开testApp目录,会有以下文件和文件夹:这里写图片描述
目录proj.android是eclipse项目工程,proj.android-studio是android studio的项目,这两个是android的项目;
cocos2d是类库,
Classes目录,是C++源码目录,如果要更改屏幕元素,就在这里面修改!所以如果使用,就得需要C++基础了!!!
使用android stuido,打开工程proj.android-studio

3.步骤三
导入之后,并进行gradle sync成功后,会看到如下结构:
这里写图片描述
当然,libs和obj目录目前应该还没有,怎么才有呢?
在命令行里,打开到jni目录:

...\testApp\proj.android-studio\app\jni>ndk-build
1
2
1
2
执行ndk-build命令,开始编译so文件,这个时间比较长,耐心等待,成功后,就可以运行app了!

界面如下:

这里写图片描述

恭喜您,关于cocos2d-x的hello world工程运行成功!!!

注意:本部分游戏的核心部分是采用C++编写的,Java部分只负责展示这个界面!如果深入编写,需要学习C++了!!

❼ 如何用cocos2dx开发android游戏

cocos2d-x在win32平台上开发出来的代码还需要交叉编译后才能生成android可以使用的包,具体操作见这个文档

另:使用cocos2d-x引擎的优势在于便于移植性。其开发出的C++代码只要在各平台上只要稍加改动就可以使用。而单使用ECLIPSE或Xcode环境使用的语言分别是java和Object-c,如果直接让它们相互转换难度肯定要大的多。

❽ android环境下cocos2dx-3.13.1,新建项目后proj.android下没有build_native.py脚本文件,如何编译项目

好像最近几个版本不能使用build_native.py来build c++内容了,你这个项目都没这个文件应该是完全取消了这个项目的生成方式。不如你试试命令行:
cocos compile -p android
如果不行,最好看一下官方怎么说的。

❾ cocos2dx3.2编译android的.so报错

NDK_MODULE_PATH没定义

❿ Mac上编译cocos2dx例子到android手机上失败

这个是你cocos2d-x中使用srand()或者rand()的时候没有包含对应的库。我用的是VS,只要#include<math>就可以了,mac就不知道了,但应该是一样的原因

热点内容
c语言矩阵求逆 发布:2024-05-20 15:38:09 浏览:48
易通文件夹 发布:2024-05-20 15:36:25 浏览:996
斗罗大陆斗罗武魂是什么服务器 发布:2024-05-20 15:33:38 浏览:715
亚马逊的苹果和安卓哪个好 发布:2024-05-20 15:32:57 浏览:549
彩虹岛空中战场什么配置 发布:2024-05-20 15:23:31 浏览:525
c语言如何把字符串赋给字符数组 发布:2024-05-20 15:23:28 浏览:784
java调用返回值 发布:2024-05-20 15:17:32 浏览:501
编程函数头 发布:2024-05-20 15:05:04 浏览:401
日志服务器如何分ip地址保存 发布:2024-05-20 14:46:50 浏览:263
如何阻止安卓自启动 发布:2024-05-20 14:30:16 浏览:351