怎樣用ccache加速cocos2d-x android版本號的編譯
阿新 • • 發佈:2017-05-29
can ins 數據 pro 增加 chang mpi com win
在如上所看到的位置加上ccache
然後再開一個bash窗體,執行
這個命令是用來查看ccache的統計數據的
下面步驟在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: 這個辦法對其它NDKproject也適用
怎樣用ccache加速cocos2d-x android版本號的編譯