私はccacheを異なる兄弟ディレクトリから構築された同じソースコードで動作させようとしています。私は正常にこれら2つの兄弟の親ディレクトリにCCACHE_BASEDIR
を設定しました。 bld1
でビルドを行い、次にbld2
に切り替えてそのコピーをビルドすると(これらは同じソースです)、キャッシュヒットは発生しません。ccache basedirが期待通りに動作しない
これで、ログ出力がCCACHE_LOGFILE
になっています。残念ながら、ログは、どのファクタ/データがそれが見えるハッシュを計算するのに入ったかを教えてくれません、私はちょうど "そうしたマニフェストファイルがありません"というメッセージをたくさん見ています。
ccacheで問題をデバッグして、これらの2つのソースツリーを同じものとして認識しない理由を理解するために使用できるオプションはありますか?
特定のディレクトリでビルドを繰り返すと、実際にはキャッシュ内で多くのヒットが得られます。つまり、ccacheは変更されていないビルドパスを使用しているため、動作していないようですディレクトリ間で正しく(環境変数を使用している場合CCACHE_NOHASHDIR=1
)または共通のプレフィックス(例えば-fdebug-prefix-map=$PWD=.
)にデバッグ情報を再配置する-fdebug-prefix-map=old=new
を設定