我的项目有时会受益于 ccache,所以我一直在使用 ccache。我现在正在添加预编译的标头。一些消息来源表明两者是不相容的,必须在它们之间进行选择。但我在 ccache 的文档中发现它在某种程度上支持 PCH: https ://ccache.samba.org/manual.html#_precompiled_headers
事实上,当我在使用 Clang 的选项时尝试使用 ccache 构建 .o 文件时-include-pch
,我看到 ccache 成功地缓存了 .o。第一次编译尝试需要 1.5 秒,第二次只需要 0.05 秒(因为 ccache 已经完成了它的工作)。
问题在于,如果我使用clang++
而不是 with运行相同的编译命令/usr/lib/ccache/clang++
,则需要 0.5 秒......除非我离开该-include-pch
部分,在这种情况下大约需要 1.5 秒。似乎 ccache 可能导致我的 PCH 被忽略,或者其他什么。
我已按照说明进行操作(来自上面的链接)。如那里所指定,我的 ccache.conf 如下所示:
sloppiness=pch_defines,time_macros
我已经尝试了所有我能想到的#include
、、、-include
的-include-pch
合理组合。-fpch-preprocess
编译总是需要 1.5 秒,然后是 0.05 秒,而应该需要 0.5 秒,然后是 0.05 秒。
是否有可能完成这项工作,还是我必须在 ccache 和 PCH 之间做出选择?