23

C ++で記述されたアプリの複数のバージョンをコンパイルする必要があり、プロセスを高速化するためにccacheを使用すると思います。

ccacheハウツーには、gcc、g ++などの名前のシンボリックリンクを作成し、それらが元のgccバイナリの前にPATHに表示されるようにすることを提案する例があるため、代わりにccacheが使用されます。

これまでのところ良いですが、常にではなく、この特定のアプリをコンパイルするときにのみccacheを使用したいと思います。

もちろん、アプリをコンパイルするたびにこれらのシンボリックリンクを作成し、アプリのコンパイル時に削除するシェルスクリプトを作成することもできます。しかし、これは私にはファイルシステムの悪用のように見えます。

常にではなく、ccacheを選択的に使用するためのより良い方法はありますか?

単一のソースコードファイルをコンパイルするには、gccの代わりに手動でccacheを呼び出して実行することもできますが、複数のソースコードファイルに自動ビルドシステムを使用する複雑なアプリを処理する必要があります。

4

4 に答える 4

3

どのOS?Linux?ccacheのほとんどのパッケージ化されたバージョンは、それらのシンボリックリンクをすでにディレクトリに配置しています。たとえば、私のFedoraマシンでは、それらは/ usr / lib64/ccacheにあります。

だからあなたはただすることができます

PATH=/usr/lib64/ccache:${PATH} make

ccacheを使用してビルドする場合。

ほとんどのパッケージは、ファイルを/etc/profile.d/にインストールします。このファイルは、上記のようにPATHに追加することで、ccacheを自動的に有効にします。

システムでこれが当てはまる場合は、環境でccacheを無効に設定するだけですCCACHE_DISABLE=1(詳細についてはを参照)。ccacheは引き続き実行されますが、実際のコンパイラを呼び出すだけです。man ccache

于 2010-04-22T16:55:41.847 に答える
1

シンボリック リンクを作成する代わりにccache gcc、C コンパイラおよびccache g++C++ コンパイラとして明示的に使用することもできます。たとえば、Makefile が変数CCを使用しCXX、コンパイラを指定する場合make CC="ccache gcc" CXX="ccache g++"、configure 時にビルドまたは設定できます ( ./configure CC="ccache gcc" CXX="ccache g++")。

于 2010-06-23T06:52:10.743 に答える