【发布时间】:2014-12-09 22:08:44
【问题描述】:
使用多个预编译头文件有潜在的好处。假设有一个项目,其中有几个不经常更改并在许多源代码文件中使用的标头。这些标头倾向于两个簇,A 和 B。当 A 中的一个标头发生变化时,A 中的其他标头也可能发生变化,但 B 中的标头发生变化的概率不受影响,反之亦然。
在这种情况下使用两个预编译头文件可能是有益的,但大多数支持预编译头文件的编译器只支持一个预编译头文件。
这是什么原因,为什么会这样?
注意:这个问题不是问是否存在支持多个预编译头文件的编译器或如何实现。
问题是关于允许多个预编译头文件在技术上具有挑战性或不切实际的原因。
我感兴趣的特定编译器是 gcc 和 clang 编译 C++,但我的期望是这不会改变答案。
【问题讨论】:
-
用于 Windows 和 OS/2 的 IBM C 和 C++ 编译器用于预编译您曾经使用过的每个头文件。这很快就产生了大量的文件。所以他们改变了它。
标签: compiler-construction compiler-optimization precompiled-headers