天天看點

error C1010: 在查找預編譯頭時遇到意外的檔案結尾。是否忘記了向源中添加“#include "StdAfx.h"”?

error C1010: 在查找預編譯頭時遇到意外的檔案結尾。是否忘記了向源中添加“#include "StdAfx.h"”?

一、錯誤描述

fatal error C1010: 在查找預編譯頭時遇到意外的檔案結尾。是否忘記了向源中添加“#include "stdafx.h"”?

二、錯誤分析     此錯誤發生的原因是編譯器在尋找預編譯訓示頭檔案(預設#include "stdafx.h")時,檔案未預期結束。沒有找到預編譯訓示資訊的頭檔案"stdafx.h"。     (因為工程中的每個cpp檔案屬性預設都是使用預編譯頭(/YU)的,但是添加的第三方檔案并沒有 #include "stdafx.h" 預編譯訓示頭,是以編譯器在此cpp檔案中一直到末尾都沒有找到它)     我的這個問題發生于我通過添加檔案的方式,向MFC内添加現有的一大坨.h和.cpp檔案。這些.h和.cpp檔案是屬于标準C++的開源源代碼範疇,與MFC無更深層次的關系。

三、解決方式 法① 1) 在解決方案資料總管中,右擊相應的.cpp檔案,點選“屬性” 2) 在左側配置屬性中,點開“C/C++”,單擊“預編譯頭” 3) 更改右側第一行的“建立/使用預編譯頭”,把選項從“使用預編譯頭(/Yu)”改成“不使用預編譯頭” 4) 注:每一個報錯的.cpp都要如此更改哦~辛苦一下呗~ 法② (不推薦) 1)在解決方案右擊工程,點選屬性 2)在配置屬性 -> c/c++ -> 預編譯頭 中 将 “使用預編譯頭(/YU)” 改為 “不适用預編譯頭” 這種做法會使每次編譯過程非常緩慢

四、備注 1) 貌似也可以直接在.cpp頭檔案上include stdafx.h。但沒嘗試如此修改,因為不想破壞源代碼的标準性^_^ 2) 感慨一下VC在識别、編譯這方面的遲滞-_-,或許是因為太強大了吧,就沒考慮周全,竟然還需要手動修改

轉載自ghevinn的部落格:http://blog.csdn.net/ghevinn/article/details/36629681