【发布时间】:2019-01-15 17:14:16
【问题描述】:
我找到了很多关于如何将预编译头文件用于 MSVC 的示例,但我似乎找不到任何使用 clang 的示例。从这篇 SO 帖子中,我可以看到 clang 命令,但我想知道它们是如何转换为 cmake 的:
Decrease clang compile time with precompiled headers
创建预编译的头文件包括所有你不改变的头文件>>到Query.h中并使用:
clang -cc1 Query.h -emit-pch -o Query.h.pch 使用预编译头类型:
clang -cc1 -include-pch Query.h.pch Query.cpp -shared -o libquery.so; Query.cpp 需要包含 Query.h
编辑:使用 clang 6 和 cmake 3.11.2
【问题讨论】:
-
我猜你可能会通过使用像 ccache 这样的编译器缓存获得比使用预编译头文件更大的好处,并且同时避免 PCH 的所有问题。
-
我已经在用ccache了,但是项目很大。如果任何主要头文件发生变化,重新编译大约需要 20 分钟。我确实有一个永远不会更改的 stdinc.hpp 文件,我认为如果我可以将其作为预编译头文件,编译时间将会提高(只是一个理论)。
-
作为副本建议的答案显示了很多 MSVC 示例,正如 OP 所抱怨的那样,所以我怀疑它是否能回答他的问题。
-
同意 @MichaelSurette 不知道为什么它被标记为重复。
-
糟糕,抱歉复制错误。找到“MSVC”这个词,但没有注意到这是给定问题的一个无词。 @BradenEdmunds:在您的问题帖子中提及其他问题时,最好从该问题/答案中引用关键短语。额外的两行代码不会对您的问题帖子造成伤害,但无需打开引用的问题即可了解您想要什么。
标签: c++ cmake clang precompiled-headers