首页 > 解决方案 > ccache 如何提高构建速度?

问题描述

我正在使用 cmake 设置我的项目,当我更改项目中的文件时,我发现我的 cmake 知道只重新编译更改的文件,然后将所有内容重新链接在一起以获得最终的可执行文件/lib。

然后我通读了有关 ccache 的文档,我不明白的是:ccache 的方法(使用哈希值检查文件是否已更改并需要重新编译)与 cmake 使用的默认方法(或那里)有什么区别可能是其他东西,而不是 cmake 检查文件更新,但你知道我的意思)。可能 PCH 部分有所不同,但是 cmake 3.18 现在带有 PCH 支持,那么,这是否意味着 ccache 在 PCH 部分提供的好处不再是唯一的?

标签: c++cmakecompilationccache

解决方案


考虑一下您切换到项目的某个较旧分支的情况 - 您过去确实编译过并且 ccache 已缓存,但 CMake 认为“几乎所有文件都已更改并且必须重新编译” - 这就是您看到巨大收益的地方.

另一种情况是您删除了构建目录(出于某种原因),现在必须重新构建所有内容。ccache那里也是一个巨大的帮助。

还; ccache设置起来很简单,从那时起就完全不可见/透明,所以真的没有理由不使用它。当它有帮助时,它通常有很大帮助,当它没有帮助时,它不会受到伤害。


推荐阅读