私たちのシステムは、3 つの異なるツールチェーン (gcc、icc、diab) での構築をサポートしています。この場合、 ccache を使用しても安全かどうかはわかりません。私の懸念は次のとおりです: gcc でビルドしてから diab でリビルドすると、ファイルとその依存関係が同じ場合に ccache がヒットしますか?
この場合、ファイルをdiabで再コンパイルしたいので、ヒットしたくありません。
異なるコンパイラ間で ccache がヒットすることはありません。コンパイラはハッシュされます。さらに、環境変数 CCACHE_COMPILERCHECK を変更して、別の方法でコンパイラをチェックすることもできます。ccacheマニュアルにあるように:
For both modes, the following information is included in the hash:
the extension used by the compiler for a file with preprocessor output (normally .i for C code and .ii for C++ code)
the compiler’s size and modification time (or other compiler-specific information specified by CCACHE_COMPILERCHECK)
the name of the compiler
the current directory (if CCACHE_HASHDIR is set)
contents of files specified by CCACHE_EXTRAFILES (if any)