据我所知,ccache通过捕获以前的编译并检测何时再次进行相同的编译来加速编译。 但是,makefile做同样的事情。 那为什么我们需要ccache? 我们什么时候使用它? 谢谢!
答案 0 :(得分:5)
如果您曾经运行
make clean; make
,您可能会从中受益 ccache的。开发人员通常会对项目进行干净的构建 出于各种原因,这会抛弃所有信息 来自您以前的编辑。通过使用ccache,重新编译 更快。使用ccache的另一个原因是相同的缓存用于构建 在不同的目录中。如果您有多个版本或分支 存储在不同目录中的软件,许多目标文件 在构建目录中,即使它们也可以从缓存中获取 是为另一个版本或分支编译的。
第三种情况是使用ccache来加速执行的清理构建 服务器或构建农场,定期检查代码是什么 可构建的。
您还可以在用户之间共享缓存,这非常有用 在共享编译服务器上。
答案 1 :(得分:3)
除了加速构建系统破坏所需的干净构建的可疑好处,以及拥有共享缓存的偶然好处之外,即使对于基于隔离的完美基于mtime的构建系统,也存在合法使用ccache:
当你在分支机构之间来回跳转(不是在谈论单独的目录)或者重新定位时,你最终会触及一大堆文件,或者如果你运气不好,那就是一个中央标题(比如 define.h )包含在所有地方,你完美无瑕的基于mtime的构建系统将尽职尽责地重建一切。如果你在过去的某个时间建立了大部分相同的状态,那么ccache将加速重建。