预编译头文件如何减少编译时间

Dra*_*kar 5 c++ compiler-construction compilation precompiled-headers

我已经使用预编译头一段时间了,并被告知(并看到)它们如何减少编译时间。但我真的很想知道发生了什么(在引擎盖下),以便它可以使我的编译更快。

因为据我所知,在 .cpp 中添加未使用的包含会减慢您的编译时间,并且头文件可能包含大量未使用的头文件到 .cpp。

那么预编译头文件如何使我的编译速度更快呢?

Dra*_*kar 4

来自http://gamesfromwithin.com/the-care-and-feeding-of-pre-compiled-headers谢谢(@Pablo)

\n\n
\n

C++ 编译器同时在一个编译单元(cpp 文件)上运行。对于每个文件,它应用预处理器(它负责执行所有包含操作并将它们烘焙到 cpp 文件本身中),然后编译模块本身。继续处理下一个 cpp 文件,\n 冲洗并重复。显然,如果多个文件包含同一组昂贵的头文件(大型和/或依次包含许多其他头文件),则编译器将进行大量重复工作。

\n\n

将预编译头视为头文件的缓存最简单的方法。编译器可以分析一组标头一次,编译它们,然后为任何需要它们的模块准备好结果。

\n
\n