fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”? 解决方法

错误描述: fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?

错误分析:

    此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "stdafx.h")时,文件未预期结束。没有找到预编译指示信息的头文件"stdafx.h"。
    (因为工程中的每个cpp文件属性默认都是使用预编译头(/YU)的,但是添加的第三方文件并没有 #include "stdafx.h" 预编译指示头,所以编译器在此cpp文件中一直到末尾都没有找到它)
    我的这个问题发生于我通过添加文件的方式,向MFC内新添一个cpp文件却未在文件头添加StaAfx.h,然后在编译时候出现了提示。

解决方式:

一.
1) 在解决方案资源管理器中,对于.cpp文件右击相应的.cpp文件,点击“属性”
2) 在配置属性中,点开“C/C++”,单击“预编译头”
3) 更改右侧第一行的“创建/使用预编译头”,把选项从“使用预编译头(/Yu)”改成“不使用预编译头”
    注:每一个报错的.cpp都要如此更改哦

二.
1)在解决方案右击工程,点击属性
2)在配置属性 -> c/c++ -> 预编译头中将 “使用预编译头(/YU)” 改为 “不适用预编译头”
(根据我所查的资料以及实践过后得出:这种方法会使编译速度下降,所以有人不推荐使用这方法)
三.
1) 也可以直接在每个.cpp头文件上include stdafx.h
这有一篇关于VC编译的文章 写的很好
http://blog.csdn.net/hotandhot/article/details/1346195

上一篇:InjectAPC全部项目(Win32和Win64位)


下一篇:[label][JavaScript]七个JavaScript技巧