VS2010编译错误:是否忘记了向源中添加“#include "stdafx.h

时间:2022-09-04 17:27:11

VS2010编译错误:是否忘记了向源中添加“#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都要如此更改哦~辛苦一下呗~

  (2)(不推荐)1)在解决方案右击工程,点击属性2)在配置属性 -> c/c++ -> 预编译头 中 将 “使用预编译头(/YU)” 改为 “不适用预编译头”这种做法会使每次编译过程非常缓慢

  (3)备注:1) 貌似也可以直接在.cpp头文件上include stdafx.h。但没尝试如此修改,这样就破坏了库文件的标准型,不过对第三方文件做适当修改也是可以满足需求的。

参考网址:

http://blog.csdn.net/youxiazzz12/article/details/22789501