CCacheを使用してCocos 2 d-xコンパイル加速を行う方法


CCacheはC/C++のコンパイラキャッシュです.同じコンパイルが再コンパイルされると、検出が行われ、前にコンパイルされたキャッシュによってコンパイルが加速される.この方法でCocos 2 d-x Androidのコンパイルを加速することができます.この方法でi 7 CPUのMacbook Pro Retinaでコンパイルすると、私たちのCocos 2 d-x Androidエンジニアリングのコンパイル時間を10分から30秒に減らすことができます!!
注意:以下の操作はMac OS Xにのみ有効です.
インストール
homebrewを使用します.
1 brew install --HEAD ccache
またはソースコードでインストールします.
1
2
3
4
5
6
7 git clone https: //github.com/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をインストールする必要があります.
1 brew install automake
ただし、brewが見つからないというエラーが発生した場合は、brewをインストールする必要があります.
1 ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
ccacheのパスが$PATHで認識されることを確認し、コマンドを実行します.
1 ccache
ヘルプメッセージを見たら、おめでとうございます.インストールに成功しました.
androidでコンパイル環境を構成する
次の環境変数を設定してccacheを使用する必要があります.
1
2
3
4 vim ~/.bash_profile  Add following lines: export USE_CCACHE=1 export NDK_CCACHE=/usr/local/bin/ccache
コマンドラインを実行します.
1 ccache -M 10G
このコマンドはキャッシュサイズを10 Gに設定します.もちろん、ハードディスク(HDD)に十分なスペースがあれば、50 Gに設定することもできます.
次に、NDKディレクトリに移動します.このパスを忘れた場合は、次のコマンドを使用して表示できます.
1 which ndk-build
以下は私の出力結果です.
1 /developer/android/android-ndk-r9b/ndk-build
だから、私のNDK_ROOTは:
1 /developer/android/android-ndk-r9b
ファイルを開く:$NDK_ROOT/build/core/default-build-commands.mk
次の章を見つけてccacheを追加します.次のようにします.
1
2
3
4
5
6
7
8
9
10
11
12
13 ifneq ($(findstring ccc-analyzer,$(CC)),) TARGET_CC       = $(CC) else TARGET_CC       = ccache $(TOOLCHAIN_PREFIX)gcc    #Add ccache support endif TARGET_CFLAGS   = TARGET_CONLYFLAGS = ifneq ($(findstring c++-analyzer,$(CXX)),) TARGET_CXX      = $(CXX) else TARGET_CXX      = ccache $(TOOLCHAIN_PREFIX)g++ #Add ccache support endif TARGET_CXXFLAGS = $(TARGET_CFLAGS) -fno-exceptions -fno-rtti
cococos 2 d-xゲームのコンパイル
cococos 2 d-xルートディレクトリを選択し、実行:
1 python build/android-build.py -p 10 cpp-tests
ターミナルウィンドウを新規作成し、次の操作を行います.
1 ccache -s
このコマンドはccache状態を印刷します.次のようにします.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 cache directory                     /Users/heliclei/.ccache primary config                      /Users/heliclei/.ccache/ccache.conf secondary config      (readonly)    /usr/local/etc/ccache.conf cache hit (direct)                 13588 cache hit (preprocessed)           11145 cache miss                          696 called for link                        1 called for preprocessing              14 preprocessor error                     1 can't use precompiled header        129 no input file                          5 files in cache                     32222 cache size                           5.4 GB max cache size                      30.0 GB
キャッシュのキャッシュヒット(cache hit)とキャッシュサイズ(cache size)が0の場合、ccacheが実行されていないことを示し、新しい構成を確認する必要があります.
Xcodeへの導入
Xcode(5.1)のccache環境を構成するのはちょっと面倒です.確かにccacheを呼び出すことができますが、コンパイル速度は増加していないようです.もしあなたがこの問題を解決する良い方法があれば、githubでこのチュートリアルにprを提出してください.設定方法を見てみましょう
まず、cocos 2 d_にカスタムマクロ(user-defined macros)を2つ追加します.Libsのコンパイルオプション:
1
2 CC=$(SOURCE_ROOT)/../tools/xcode_ccache_wrapper LDPLUSPLUS=$(DT_TOOLCHAIN_DIR)/usr/bin/clang++
次に、$(COS 2 dX_ROOT)/tools/パスの下にxcode_という名前を作成する必要があります.ccache_wrapperのスクリプト:
1
2
3
4 #!/bin/bash export CCACHE_CPP2=yes export CCACHE_LOGFILE=~/Desktop/ccache. log exec /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を提出して、私の間違いを修正して、広発開発者に幸福をもたらしてください.
ソース:https://github.com/chukong/cocos-docs/blob/master/manual/framework/native/v3/ccache-speed-up/zh.md