vs编译错误:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include stdafx.h”?
vs2015編譯出現以下錯誤:
在查找預編譯頭時遇到意外的文件結尾。是否忘記了向源中添加“#include "stdafx.h"”?
一、錯誤分析:
此錯誤發生的原因是編譯器在尋找預編譯指示頭文件(默認#include "stdafx.h")時,文件未預期結束。沒有找到預編譯指示信息的頭文件"stdafx.h"。
?(因為工程中的每個cpp文件屬性默認都是使用預編譯頭(/YU)的,但是添加的第三方文件并沒有 #include "stdafx.h" 預編譯指示頭,所以編譯器在此cpp文件中一直到末尾都沒有找到它)
我的這個問題發生于我通過添加文件的方式,向MFC內添加現有的一大坨.h和.cpp文件。這些.h和.cpp文件是屬于標準C++的開源源代碼范疇,與MFC無更深層次的關系。
?
二、解決方式:
1、推薦使用
1) 在解決方案資源管理器中,右擊相應的.cpp文件,點擊“屬性”
2) 在左側配置屬性中,點開“C/C++”,單擊“預編譯頭”
3) 更改右側第一行的“創建/使用預編譯頭”,把選項從“使用預編譯頭(/Yu)”改成“不使用預編譯頭”
4) 注:每一個報錯的.cpp都要如此更改。
2.(不推薦)
1)在解決方案右擊工程,點擊屬性
2)在配置屬性 -> c/c++ -> 預編譯頭 中 將 “使用預編譯頭(/YU)” 改為 “不使用預編譯頭”
這種做法會使每次編譯過程非常緩慢。
?
說明:
?貌似也可以直接在.cpp頭文件上include stdafx.h。但沒嘗試如此修改,不想破壞源代碼的標準性。
總結
以上是生活随笔為你收集整理的vs编译错误:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include stdafx.h”?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 力扣有没有java_力扣 APP 全新改
- 下一篇: LED设计规范