Bagikan melalui


Compiler Warning (level 1) C4727

"PCH bernama pch_file dengan tanda waktu yang sama yang ditemukan di obj_file_1 dan obj_file_2. Menggunakan PCH pertama.

Catatan

Di Visual Studio 2017 dan yang lebih lama, header yang telah dikompilasi sebelumnya disebut stdafx.h secara default, dan di Visual Studio 2019 dan yang lebih baru, itu disebut pch.h secara default.

C4727 terjadi saat mengkompilasi beberapa kompilasi dengan /Yc, dan di mana pengkompilasi dapat menandai semua file .obj dengan tanda waktu .pch yang sama.

Untuk mengatasinya, kompilasi satu file sumber dengan /Yc /c (membuat pch), dan yang lain mengkompilasi secara terpisah dengan /Yu /c (menggunakan pch), lalu menautkannya bersama-sama.

Jadi, jika Anda melakukan hal berikut dan menghasilkan C4727:

cl /clr /GL a.cpp b.cpp c.cpp /Ycstdafx.h

Anda akan melakukan hal berikut sebagai gantinya:

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

Anda akan melakukan hal berikut sebagai gantinya:

cl /clr /GL a.cpp /Ycpch.h /c

cl /clr /GL b.cpp c.cpp /Yupch.h /link a.obj

Untuk informasi selengkapnya, lihat