如何用ccache加速cocos2d-x android版本的编译

以下步骤在MAC下测试通过:

首先是安装CCache,

可以用homebrew

brew install --HEAD ccache

也可以用源码安装

git clone https://github.com/jrosdahl/ccache.git

cd ccache

./autogen.sh

./configure

make

make install

如果提示autoheader找不到,要先装个automake

brew install automake

当然,如果提示brew找不到,要先装一个homebrew

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

CCache装好以后,需要配置一下环境变量:

vim ~/.bash_profile

加上如下配置:

export USE_CCACHE=1
export CCACHE_DIR=/Developer/ccache
export NDK_CCACHE=/usr/local/bin/ccache

保存退出

然后在bash下运行:

source ~/.bash_profile

让设置生效。

然后再运行:

ccache -F 10G

这个命令是设置编译文件缓存的大小,如果硬盘够大,可以设50G。

最后找到NDK目录,编辑$NDK_ROOT/build/core/default-build-commands.mk文件:

#
# IMPORTANT: The following definitions must use lazy assignment because
# the value of TOOLCHAIN_PREFIX or TARGET_CFLAGS can be changed later by
# the toolchain's setup.mk script.
#

ifneq ($(findstring ccc-analyzer,$(CC)),)
TARGET_CC       = $(CC)
else
TARGET_CC       = ccache $(TOOLCHAIN_PREFIX)gcc
endif
TARGET_CFLAGS   =
TARGET_CONLYFLAGS =

ifneq ($(findstring c++-analyzer,$(CXX)),)
TARGET_CXX      = $(CXX)
else
TARGET_CXX      = ccache $(TOOLCHAIN_PREFIX)g++
endif
TARGET_CXXFLAGS = $(TARGET_CFLAGS) -fno-exceptions -fno-rtti

在如上所示位置加上ccache

配置完毕

测试一下效果:

切到coco2d-x根目录,运行:

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

然后再开一个bash窗口,运行

ccache -s

这个命令是用来查看ccache的统计数据的

第一次编译是建立缓存,在我的mbp i7 SSD下大概要7分钟,会比没有加速慢一些

如果出现编译错误:

ccache找不到

需要检查一下ccache是否安装正确,可以在命令行上输入ccache -V测试一下,如果有没有输出版本信息,就表明ccache没有安装成功,如果命令行里测试通过,但编译时仍提示ccache找不到,有可能是path设置不对,可以用绝对路径试试。

用git clean -xdf 把编译结果清掉(请注意:此命令慎用,会一并删除所有没有加入git管理的文件)

再编译一次,就无比快了,不到半分钟

用ccache -s 查看下数据:

cocos2dxs-Mac-mini:core cocos2dx$ ccache -s
cache directory                     /Developer/ccache
primary config                      /Developer/ccache/ccache.conf
secondary config      (readonly)    /usr/local/etc/ccache.conf
cache hit (direct)                  8328
cache hit (preprocessed)               1
cache miss                          2609
called for link                       31
multiple source files              10939
compile failed                         1
couldn't find the compiler             3
files in cache                      6618
cache size                           1.6 GB
max cache size                       5.0 GB

如果cache hit/cache size/files in cache都是0,说明ccache没有生效。

UPDATE: 这个办法对其他NDK工程也适用

如何用ccache加速cocos2d-x android版本的编译

时间: 2024-12-28 01:18:37

如何用ccache加速cocos2d-x android版本的编译的相关文章

#Cocos2d+lua#android+Eclipse工程编译设置

用Elicpse编译cocos2d+lua的工程几点注意点记录: 1.设置工程属性Windows->Preferences->NDK目录 2.右键Android Tools->Add native 3.编辑Android.mk文件: LOCAL_C_INCLUDES $(call import-add-path, $(LOCAL_PATH)/../../../) $(call import-module, xxxx) 4.编辑Application.mk: APP_STL := gnus

怎样用ccache加速cocos2d-x android版本号的编译

下面步骤在MAC下測试通过: 首先是安装CCache, 能够用homebrew brew install --HEAD ccache 也能够用源代码安装 git clone https://github.com/jrosdahl/ccache.git cd ccache ./autogen.sh ./configure make make install 假设提示autoheader找不到,要先装个automake brew install automake 当然,假设提示brew找不到,要先装

使用Intel HAXM 加速你的Android模拟器

Android 模拟器一直以运行速度慢著称, 本文介绍使用 Intel HAXM 技术为 Android 模拟器加速, 使模拟器运行度媲美真机, 彻底解决模拟器运行慢的问题. Intel HAXM (Hardware Accelerated Execution Manager) 使用基于 Intel(R) Virtualization Technology (VT) 的硬件加速, 因此需要 CPU 支持 VT , 而且仅限于 Intel CPU, 与 AMD CPU 无缘, Intel HAXM

Android--hardwareAccelerated 硬件加速详解 android:largeHeap="true"

做项目时,引导页面的ViewPager报了OOM异常,图片并不大,在清单文件Application节点中添加了两行代码就解决了这个问题 android:hardwareAccelerated="false"android:largeHeap="true" 从Android3.0(API Level 11)开始,Android 2D渲染管道能够更好的支持硬件加速.硬件加速执行的所有的绘图操作都是使用GPU在View对象的画布上来进行的.因为启用硬件加速会增加资源的需求

文字转图片APP,Android版本(长微博手机版)超越长微博

文字转图片,目前支持自定义生成图片尺寸(默认为手机宽度*自适应高度),支持字体大小,颜色,背景色,背景图,字体,行间距设置,以及自定义水印.并且增加了二维码功能和文件导入生成功能,其中二维码功能用于文字生成二维码后,使用文字转图片二维码扫描后,会立即生成对应的文字图片,支持加密!自定义密钥等功能,后期的创新功能陆续开发中! 开发者:谭东. 顶尖文字转图片技术!更多功能开发中 下载地址:http://pan.baidu.com/s/1qWHIPru 联系QQ :85204173 下载地址:http

代码获取Android版本等信息

我手机的关于手机界面: 说明: 其中手机型号.Android版本.软件版本通过系统Build类得到,处理器信息.内核版本通过读取系统文件得到,基带版本信息通过反射得到. 源码: package com.example.shen.phoneinfo; import android.app.Activity; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.L

Unity3D 实现简单的语音聊天 [Android版本]

上次简单说了iOS版本的聊天功能 Unity3D 实现简单的语音聊天 [iOS版本] 这次我们接着上篇来说下Android版本来实现简单的语音聊天,流程和iOS基一样的 @[email protected] 在这里我们可能会遇到一下问题: 1.U3D C# 与 Android Java之间是怎么通讯 2.Android怎么调用原生的录音功能和播放功能 好,我们逐一解决问题 1.U3D C# 与 Android Java之间是怎么通讯 相比iOS,Android这边会比较简单些 再C# 中这样调用

什么是函数响应式编程(Java&Android版本)

什么是函数响应式编程(Java&Android版本) 原文链接:http://www.bignerdranch.com/blog/what-is-functional-reactive-programming/ 函数响应式编程(FRP)为解决现代编程问题提供了全新的视角.一旦理解它,可以极大地简化你的项目,特别是处理嵌套回调的异步事件,复杂的列表过滤和变换,或者时间相关问题. 我将尽量跳过对函数响应式编程学院式的解释(网络上已经有很多),并重点从实用的角度帮你理解什么是函数响应式编程,以及工作中

Android 版本问题

============问题描述============ 大家做安卓用的那个API . 该用4.0  还是4.0.3 如果用4.0  安卓2.3的机子能运行吗 ============解决方案1============ 只能2.3可以让4.0运行,不能4.0让2.3运行 ============解决方案2============ 可以运行,不过有的4.0的API在2.3中不能使用. ============解决方案3============ 一般運行時沒有問題的,你只需在xml配置文件中設置好兼