專案啟用「使用預編譯頭 (/Yu)」且指定 stdafx.h,若 #include "stdafx.h" **非源文件第一行有效代碼** (前面只有註解/空行),編譯報錯 fatal error C1010: unexpected end of file while looking for precompiled header。
.pch),大幅加速編譯。#include "stdafx.h",直接報錯,因為 PCH 只能在編譯單元**最開頭**注入預編譯狀態。stdafx.h 內部通常包含 #include , #include 等,且以 #pragma hdrstop (可選) 標記預編譯結束點。
// stdafx.cpp (僅此文件用 /Yc 建立 PCH)
#include "stdafx.h"
// 其他 .cpp (用 /Yu 使用 PCH)
#include "stdafx.h" // 必須是第一行有效代碼
#include
#include "my_header.h"
// ... 實現代碼
#include "stdafx.h" 放在命名空間、宏定義、其他 include 之後。target_precompile_headers (CMake 3.16+) 或 Unity Build 統一管理。博客詳解:VC++ 預編譯頭強制首行包含原理