次の方法で共有


コンパイラの警告 (レベル 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

詳細については、以下を参照してください。