CCacheを使用してCocos 2 d-xコンパイル加速を行う方法
5024 ワード
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
またはソースコードでインストールします.
1
2
3
4
5
6
7
注:デフォルトのインストールパスは/usr/local/binです.ccacheを/usr/bin/にコピーする必要があります.そうしないと、ndk-buildが見つかりません.エラーが表示されます.
端末がautoheaderが見つからないと間違えた場合は、automakeをインストールする必要があります.
1
ただし、brewが見つからないというエラーが発生した場合は、brewをインストールする必要があります.
1
ccacheのパスが$PATHで認識されることを確認し、コマンドを実行します.
1
ヘルプメッセージを見たら、おめでとうございます.インストールに成功しました.
androidでコンパイル環境を構成する
次の環境変数を設定してccacheを使用する必要があります.
1
2
3
4
コマンドラインを実行します.
1
このコマンドはキャッシュサイズを10 Gに設定します.もちろん、ハードディスク(HDD)に十分なスペースがあれば、50 Gに設定することもできます.
次に、NDKディレクトリに移動します.このパスを忘れた場合は、次のコマンドを使用して表示できます.
1
以下は私の出力結果です.
1
だから、私のNDK_ROOTは:
1
ファイルを開く:$NDK_ROOT/build/core/default-build-commands.mk
次の章を見つけてccacheを追加します.次のようにします.
1
2
3
4
5
6
7
8
9
10
11
12
13
cococos 2 d-xゲームのコンパイル
cococos 2 d-xルートディレクトリを選択し、実行:
1
ターミナルウィンドウを新規作成し、次の操作を行います.
1
このコマンドはccache状態を印刷します.次のようにします.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
キャッシュのキャッシュヒット(cache hit)とキャッシュサイズ(cache size)が0の場合、ccacheが実行されていないことを示し、新しい構成を確認する必要があります.
Xcodeへの導入
Xcode(5.1)のccache環境を構成するのはちょっと面倒です.確かにccacheを呼び出すことができますが、コンパイル速度は増加していないようです.もしあなたがこの問題を解決する良い方法があれば、githubでこのチュートリアルにprを提出してください.設定方法を見てみましょう
まず、cocos 2 d_にカスタムマクロ(user-defined macros)を2つ追加します.Libsのコンパイルオプション:
1
2
次に、$(COS 2 dX_ROOT)/tools/パスの下にxcode_という名前を作成する必要があります.ccache_wrapperのスクリプト:
1
2
3
4
設定が完了すると、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
注意:以下の操作は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