0

CMakeでccacheを使用しようとしています。gcc、、という名前のシンボリックリンクをに配置g++c++ました/usr/local/bin。を実行makeし、コンパイルされたファイルに影響を与えない変更をCMakeLists.txtに追加し(すべてのターゲットを強制的にビルドさせるために未使用のライブラリを追加)、再実行するmakeと、ccacheがないかのようにすべてが再コンパイルされます。ただし、CMakeで生成されたすべてのファイルを削除してから呼び出すとcmake; make、CMakeLists.txtを変更しても、すべてが正常に機能し、オブジェクトファイルがキャッシュから取得されます。

CMakeによって生成されたものがキャッシュにヒットするのを防ぐように見えます。makeとの両方の詳細な出力を検索しようとしましcmakeたが、この動作を引き起こす可能性のある依存関係は見つかりませんでした。

4

2 に答える 2

0

ccache 3.0 (数日前にリリースされたもの) をインストールCCACHE_LOGFILEして、ファイルに設定することをお勧めします。次に、ccache はそのファイルに対して何を行っているかを出力します。おそらく、問題についての手がかりが得られるでしょう。

于 2010-06-23T06:47:45.840 に答える
0

cmake が実行されると、バイナリのフル パスが CMakeCache.txt に挿入されます。これは、将来の構成が高速になるように速度を最適化するものです (autoconf に時間がかかる理由の 1 つは、非常に多くのことを何度も何度も検索するためです)。cmake を強制的に再スキャンする場合は、CMakeCache.txt ファイルを削除するか、更新するツールへのパスを含む変数をそのファイルから除外します。

于 2011-11-09T04:20:25.647 に答える