编译器警告(等级 1)C4727
命名为 pch_file 的 PCH 与 obj_file_1 和 obj_file_2 中的时间戳相同。 使用第一个 PCH。
注意
在 Visual Studio 2017 及更早版本中,预编译的标头默认称为 stdafx.h,而在 Visual Studio 2019 及更高版本中,默认情况下称为 pch.h。
如果使用 /Yc 编译多个组件,并且编译器能够使用相同的 .pch 时间戳标记所有 .obj 文件,就会发生 C4727 错误。
若要解决此问题,请使用 /Yc /c 编译一个源文件(创建 pch),并使用 /Yu /c(使用 pch)单独编译其他源文件,然后将它们链接在一起。
因此,如果执行以下操作就会生成 C4727:
cl /clr /GL a.cpp b.cpp c.cpp /Ycstdafx.h
可以改为执行以下操作:
cl /clr /GL a.cpp /Ycstdafx.h /c
cl /clr /GL b.cpp c.cpp /Yustdafx.h /link a.obj
cl /clr /GL a.cpp b.cpp c.cpp /Ycpch.h
可以改为执行以下操作:
cl /clr /GL a.cpp /Ycpch.h /c
cl /clr /GL b.cpp c.cpp /Yupch.h /link a.obj
有关详细信息,请参阅