如何使用 CCache 进行 cocos2d-x 编译加速

如何使用 CCache 进行 cocos2d-x 编译加速,第1张

概述From: http://www.voidcn.com/article/p-mixumgls-bkt.html CCache是c/c++的编译器缓存。当相同的编译被再次编译时,进行检测并通过之前编译的缓存进行编译加速。所以我们可以通过这种方法给cocos2d-x android的编译加速。使用这种方法,在i7 CPU的Macbook Pro Retina上编译,我们的cocos2d-x andro

From: http://www.jb51.cc/article/p-mixumgls-bkt.html

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

注意:以下 *** 作仅对MacOSX有效。

安装

我们使用homebrew:

brew install --head ccache

或者通过源码安装:

git clone https://github.com/jrosdahl/ccache.gitcd ccache./autogen.sh./configuremakemake installcp /usr/local/bin/ccache /usr/bin/

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

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

brew install automake

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

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

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

ccache

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

在androID上配置编译环境

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

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

运行命令行:

ccache -M 10G

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

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

which ndk-build

以下是我的输出结果:

/developer/androID/androID-ndk-r9b/ndk-build

所以,我的NDK_ROOT是:

/developer/androID/androID-ndk-r9b

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

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

ifneq ($(findstring ccc-analyzer,$(CC)),)TARGET_CC       = $(CC)elseTARGET_CC       = ccache $(TOolCHAIN_PREFIX)gcc    #Add ccache supportendifTARGET_CFLAGS   =TARGET_CONLYFLAGS =ifneq ($(findstring c++-analyzer,$(CXX)),)TARGET_CXX      = $(CXX)elseTARGET_CXX      = ccache $(TOolCHAIN_PREFIX)g++ #Add ccache supportendifTARGET_CXXFLAGS = $(TARGET_CFLAGS) -fno-exceptions -fno-rtti
编译cocos2d-x游戏

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

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

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

ccache -s

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

cache directory                     /Users/heliclei/.ccacheprimary config                      /Users/heliclei/.ccache/ccache.confsecondary config      (Readonly)    /usr/local/etc/ccache.confcache hit (direct)                 13588cache hit (preprocessed)           11145cache miss                          696called for link                        1called for preprocessing              14preprocessor error                     1can't use @R_457_3013@ header        129no input file                          5files in cache                     32222cache size                           5.4 GBmax cache size                      30.0 GB

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

在Xcode中部署

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

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

CC=$(SOURCE_ROOT)/../tools/xcode_ccache_wrapperLdplUSPLUS=$(DT_TOolCHAIN_DIR)/usr/bin/clang++

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

#!/bin/bashexport CCACHE_CPP2=yesexport CCACHE_LOGfile=~/Desktop/ccache.logexec /usr/local/bin/ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Qunused-arguments "$@"

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

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

但问题是,添加cache后,我mbp的Xcocde依旧没有提升编译速度。有可能是我使用的脚本不正确,所以,如果你看到本章节,并知道我的问题出在哪,请到github中提交pr,修正我的错误,并造福广发开发者哦!!

==============================================================================

以下为本人的实际使用经验(Mac OS X 10.10.3):

1. 我的安装使用: brew install ccache,默认已经可以在终端执行ccache了。

在.bash_profile中只需要配置:

export USE_CCACHE=1export NDK_CCACHE=ccache

再在终端执行:ccache -M 10G,这个大小已经够用了,看自己需要改。

我用的ndk是androID-ndk-r9d,所以不需要去修改$NDK_ROOT/build/core/default-build-commands.mk文件,如果照文中的去修改,反而不对了!请看图:



从图中可以看出,不修改default-build-commands.mk才是对的,如果改了反而不对,因为他将找不到"ccache“这个编译器(编译时会体现出来)!

总结

以上是内存溢出为你收集整理的如何使用 CCache 进行 cocos2d-x 编译加速全部内容,希望文章能够帮你解决如何使用 CCache 进行 cocos2d-x 编译加速所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1002476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存