9

copr経由でインストールされたBazel 0.16.1とDNF経由でインストールされたccache 3.4.2を使用して、Fedora 28でC++アプリケーションを構築しようとしています。デフォルトの cc_binary および cc_library ルールを使用しています。bazel build コマンドを実行すると、ccache で次のエラーが発生します。

ccache: error: Failed to create temporary file for /home/mwalker/.ccache/tmp/time.stdout: Read-only file system

ビルドすると--verbose_failures --sandbox_debug、ccache tmp ディレクトリ r/w をマウントしていないことがわかります。

では、bazel に ccache ディレクトリを r/w でマウントさせるにはどうすればよいですか、またはワークスペースの正しいキャッシュ ディレクトリが存在する場所を bazel を介して ccache に伝えるにはどうすればよいでしょうか?

Ubuntu 18.04 で同じコマンドを実行すると成功するため、ccache が何らかの形でサポートされていると思われます。

私の問題の一部は、ccache がそのコンパイラー・ドライバーを gcc としてインストールしたことのようです。例which gcc -> /usr/lib64/ccache/gcc。Ubuntu では ccache を明示的に呼び出す必要があり、デフォルトのツールチェーンはそれを呼び出していません。

4

2 に答える 2