(これは、ccache ホスト マシンでコマンド パスのみを展開しないようにするため、 ccache と絶対パスの質問とは異なります)
ccache と distcc を一緒に使用すると、ccache はコンパイラを絶対パスに展開し、distcc はリモート マシンの PATH を使用して使用するコンパイラを選択できません。
たとえば、私が呼び出すCCACHE_PREFIX=distcc ccache g++ foo.cc
と、ccacheはこれをローカルの前処理ステップとキャッシュ チェックに展開distcc /usr/bin/g++
し、次に distcc as を呼び出します。これは間違ったバージョンです (g++ は /usr/bin の前のリモートのパスに存在しますが、これはそれを与えませんパスを検索する機会がまったくありません)。
私はさまざまなマシンを distcc ホストとして使用しており、同じバージョンの gcc/g++ が異なる場所にインストールされています (はい、/usr/local のような場所にそれらをすべて配置すると、この問題は解決しますが、できません現時点ではそれを行います)。
g++
パスをローカル コンパイラの絶対パスに展開するのではなく、distccだけに渡すように ccache を取得する設定はありますか? まだ設定がない場合、ccache にパッチを適用することに完全に反対しているわけではありませんが、それは最後の手段です :)