我正在尝试使用通过 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 以 r/w 方式挂载我的 ccache 目录,或者如何通过 bazel 告诉 ccache 我的工作区的正确缓存目录所在的位置?
当我在 Ubuntu 18.04 上运行相同的命令时,它会成功,所以这让我相信 ccache 以某种方式得到支持。
看起来我的问题的一部分是ccache将其编译器驱动程序安装为gcc。例如which gcc -> /usr/lib64/ccache/gcc
。必须显式调用 Ubuntu ccache 上的位置,并且默认工具链不会调用它。