如何使用CCache加速Cocos2d-x编译

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

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

固定

我们使用自制软件:

brew安装头ccache

或者通过源代码安装:

git clone/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:

brew安装自动制作

但是,如果错误是找不到brew,就必须先安装brew:

ruby-e " $(curl-fsSL/home brew/home brew/go/install)"

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

ccache

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

在android上配置编译环境

要使用ccache,我们必须首先设置以下环境变量:

vim ~/。bash_profile添加以下行:export USE _ CCACHE = 1 export NDK _ CCACHE =/usr/local/bin/CCACHE

运行命令行:

ccache -M 10G

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

然后,我们跳到NDK目录。如果您忘记了该路径,可以使用以下命令来检查它:

哪个ndk-build

以下是我的输出:

/开发者/Android/Android-ndk-r9b/ndk-build

所以,我的NDK根是:

/开发者/android/android-ndk-r9b

打开文件:$ ndk _ root/build/core/default-build-commands . MK。

找到以下章节并添加ccache,如下所示:

ifneq ($(findstring ccc-analyzer,$(CC)),)TARGET _ CC = $(CC)else TARGET _ CC = ccache $(tool chain _ PREFIX)gcc # Add ccache support endif TARGET _ CFLAGS = TARGET _ CONLYFLAGS = if neq($(find string c++-analyzer,$(CXX)),)TARGET _ CXX = $(CXX)else TARGET _ CXX = ccache $(tool chain _ PREFIX)g++# Add ccache support endif TARGET _ CX flags = $(c

编译cocos2d-x游戏

选择cocos2d-x根目录并运行:

python build/Android-build . py-p 10 CPP-tests

创建一个新的终端窗口并运行:

ccache -s

该命令将打印ccache状态,如下所示:

缓存目录/用户/heliclei/。ccache主配置/Users/heliclei/。ccache/ ccache.conf二级配置(readonly)/usr/local/etc/ccache . conf缓存命中(直接)13588缓存命中(预处理)1145缓存未命中696调用链接1调用预处理14预处理器错误1无法使用预编译头129缓存中没有输入文件5个文件

如果缓存的缓存命中和缓存大小都是0,就说明ccache没有运行,我们必须重新检查配置。

在Xcode中部署

配置Xcode(5.1)的ccache环境有点麻烦。我可以调用ccache,但是好像没有提高编译速度。如果你有解决这个问题的好办法,请在github上提交这个教程的pr!但是我们来看看设置方法:

首先,我们将两个用户定义的宏添加到cocos2d_libs的编译选项中:

CC=$(SOURCE_ROOT)/../tools/xcode _ ccache _ wrapper ldplus plus = $(DT _ tool chain _ DIR)/usr/bin/clang++

然后,我们需要在$(COCOS2dX_ROOT)/tools/ path中创建一个名为xcode_ccache_wrapper的脚本:

#!/bin/bash export CCACHE _ CPP 2 = yes export CCACHE _ log file = ~/Desktop/CCACHE . log exec/usr/local/bin/CCACHE/Applications/xcode . app/Contents/Developer/tool chains/xcode default . xctool chain/usr/bin/clang-qun used-arguments " $ @ "

设置完成后,我们就可以愉快地用Xcode编译了!

打开ccache.log查看缓存的工作状态。

但问题是,加了缓存后,我的mbp Xcocde还是没有提高编译速度。可能是我用的脚本不正确,所以如果你看到这一章,知道我的问题是什么,请在github提交pr纠正我的错误,造福广发开发者!!