我所知,ccache 通过捕获以前的编译并检测何时再次执行相同的编译来加快编译速度。但是,makefile执行相同的操作。那么为什么我们需要ccache呢?我们什么时候使用它?谢谢!
损坏的构建系统所需的干净构建的可疑好处,以及拥有共享缓存的偶然好处之外,即使对于孤立的基于mtime的构建系统,也存在ccache的合法使用:
当你在分支之间来回跳转(不是在谈论单独的目录)或变基时,以至于你最终接触到一大堆文件,或者如果你不走运的话,一个中心标题(如config.h)到处都是,你完美的基于mtime的构建系统将尽职尽责地重建一切。如果您在过去某个时候构建了大致相同的状态,ccache 将加快此重建速度。
从 http://ccache.samba.org/:
如果你曾经运行过
make clean; make
,你可能会从中受益 缓存。开发人员通常会对项目进行干净的构建 出于多种原因,这丢弃了所有信息 从您之前的汇编中。通过使用 ccache,重新编译 快多了。使用 ccache 的另一个原因是相同的缓存用于构建 在不同的目录中。如果您有多个版本或分支 一个软件存储在不同的目录中,许多目标文件 在构建目录中可能可以从缓存中获取,即使它们 已针对其他版本或分支进行编译。
第三种情况是使用 ccache 来加速由 定期检查代码的服务器或生成场 可构建。
您还可以在用户之间共享缓存,这可能非常有用 在共享编译服务器上。