似乎当我将选项设置为/Yu时,它只使用任何pch,而不检查是否需要更新,这意味着它将保留一个预编译的头列表,并检查这些文件自上次预编译以来是否已更新。
但当I/Yc时,它只是在每次构建项目时重新预编译。
我不太确定visual C++是否能像我想象的那样很好地处理这些行为,或者我是否犯了编辑.h文件的错误。
那么,我应该在每次更新标头时设置/Yc,构建,重置为/Yu,继续迭代,但重置为/Yc、重建,然后重置为/Yu吗?
您设置了一个文件,其中包含您希望预编译的头文件,以便使用/Yc
,并在必要时生成pch文件(即,pch文件相对于头文件已过期)。然后将包含它的其他文件设置为使用/Yu
,它们将使用第一个文件生成的预编译头。
如果使用Visual Studio向导生成具有预编译头的控制台项目,您将看到这一点。stdafx.cpp
文件包括stdafx.h
,并设置/Yc
为其生成pch文件;那么main.cpp
文件也包括stdafx.h
,但是它设置了/Yu
,所以它使用pch文件。
(一开始我发现文档的预编译头部分有点不透明,但一旦我设置了预编译的头并看到它们在工作,它就变得更有意义了。)