编译器警告(等级 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
有关详细信息,请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈