据我所知,ccache通过捕获以前的编译并检测同一编译何时再次执行来加快编译速度。然而,makefile也做同样的事情。那么为什么我们需要ccache呢?我们什么时候用它?谢谢!
发布于 2017-07-27 08:55:16
除了由于构建系统崩溃而需要加快干净构建的可疑好处,以及拥有共享缓存的意外好处之外,ccache也有合法的使用,即使是针对一个独立的、无缺陷的基于mtime的构建系统:
当您在分支之间来回跳(而不是谈论单独的目录)或重基时,您最终会接触到一大堆文件,或者如果您运气不佳,一个包含在各处的中心标头(如config.h),您的完美的基于mtime的构建系统将尽职尽责地重建所有内容。如果您在过去的某个时候已经构建了大部分相同的状态,ccache将加速此重建。
发布于 2012-04-13 07:22:08
来自http://ccache.samba.org/
--如果您曾经运行过
make clean; make,您可能会从ccache中受益。对于开发人员来说,出于一系列原因,对项目进行干净的构建是很常见的,这就抛弃了以前编译过程中的所有信息。通过使用ccache,重新编译速度要快得多。
使用ccache的另一个原因是相同的缓存用于不同目录中的构建。如果软件的多个版本或分支存储在不同的目录中,那么构建目录中的许多对象文件可能会从缓存中取出,即使它们是为另一个版本或分支编译的。
第三种情况是使用ccache来加速由服务器执行的干净构建,或者定期检查代码是否可构建的构建场。
您还可以在用户之间共享缓存,这在共享编译服务器上非常有用。
https://stackoverflow.com/questions/10136761
复制相似问题