问题是使用VS创建的C\C++工程时,VS会默认为每一个.cpp文件的首行添加#include "stdafx.h"。文件"stdafx.h"是一个预编译头文件,其作用是当包含的文件没有修改时从新编译不需要真的再次编译一遍。
我遇到的问题解释:
根据其他网友的信息,一般是加入了新的.h和.cpp文件时,编译新加入.cpp文件出现这类错误。原因就是找不到提示需要的文件。比如我这里的提示的"pch.h",有些网友说是"stdafx.h"文件。这里我的理解是"pch.h"和"stdafx.h"文件都是预编译文件,问题的根源是一样。我用VS2015创建的工程,类型是<Keyword>MFCProj</Keyword>。发现默认的.cpp文件首行添加的是"pch.h"预编译文件。而我在引入新的.h和.cpp文件时,其中.cpp文件的首行是#include "stdafx.h"。这里就出现不统一了。
.cpp文件预编译设置路径:
1.在解决方案资源管理器中,右击相应的.cpp文件,点击“属性”
2.在左侧“配置属性”中,点开“C/C++”,单击“预编译头”
3.更改右侧第二行的“预编译头文件”
通过上述可以明白,编译器默认为每个.cpp文件设置的预编译文件是pch.h预编译文件,而.cpp文件里面使用的是"stdafx.h"。所以只要将其修改统一即可。
比如
1.把新加入的每个.cpp文件首行#include "stdafx.h"更改为#include "pch.h"
2.把新加入的每个.cpp设置预编译头文件修改为pch.h。设置路径见上面的描述。
注意:pch.h文件路径写错也报相同的错误。
比如,我这里pch.h的路径是当前.cp文件的上一级路径下,需要../pch.h
感谢其他网友的文件解释
error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"_overlord_bingo的博客-CSDN博客