如何使用CCache加速Cocos2d-x编译
注意:以下操作仅对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纠正我的错误,造福广发开发者!!