コンパイラの警告 (レベル 1) C4727
pch_file という名前で、タイムスタンプが同じである PCH が obj_file_1 と obj_file_2 に見つかりました。 最初の PCH を使用します。
Note
Visual Studio 2017 以前では、プリコンパイル済みヘッダーの既定の名前は stdafx.h であり、Visual Studio 2019 以降では pch.h が既定の名前です。
C4727 は、/Yc で複数のコンパイル単位をコンパイルし、コンパイラがすべての .obj ファイルに同じ .pch タイムスタンプを付けることができた場合に発生します。
解決するには、1 つのソース ファイルを//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
詳細については、以下を参照してください。