编译时间过长是影响大型项目研发效率的一大难题。就市面上被普遍使用的构建系统,其确实存在一定的编译缓存机制,使得用户在重复进行编译操作时(例如修改了一个Bug
),尽可能复用之前的编译成果以节省编译时间。例如CMake
使用CMakeCache.txt
来对编译缓存项进行追踪。但类似的机制存在一些限制,如CMakeCache.txt
只能管理它自己所在项目的构建目录,如果用户因为一些原因清空了整个构建目录,构建缓存也将被一同清理;又如果多人协作同一个代码项目,他们各自都有属于自己的用户目录和工作目录(甚至自己的工作电脑),自然不可能指望他们可以共享编译缓存,即使这些缓存实质上确实是完全相同的,毕竟是同一份源码编译出的同样的东西。
为了解决这个问题,我们可以引入专业的编译缓存管理工具:CCache
。