使用ccache时,如何获得预编译头文件的全部好处?

mjw*_*ach 6 precompiled-headers ccache

我的项目有时会受益于ccache,所以我一直在使用ccache.我现在正在添加预编译头文件.一些消息来源表明,这两者是不相容的,必须在它们之间做出选择.但我在ccache的文档中发现它在某种程度上支持PCH:https: //ccache.samba.org/manual.html#_precompiled_headers

实际上,当我尝试使用ccache在使用Clang -include-pch选项的同时构建.o文件时,我发现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
Run Code Online (Sandbox Code Playgroud)

我已经试过的一切合理的组合#include,-include,-include-pch-fpch-preprocess我能想到的.编译总是花费1.5秒然后0.05秒,当它应该花费0.5秒,然后0.05秒.

有可能做到这一点,或者我必须在ccache和PCH之间做出选择吗?