unexpected end of file while looking for precompiled headerdirective Add directive to 'stdafx.h' or rebuild precompiled header错误

解决方式

项目工程右键->propertity(属性),选择不用于预编译头

 

 

 

原因

C++的编译过程如下:

 

 

 

当头文件很多时,预编译过程需要耗费大量时间,为了减少重复编译的次数,C和C++提供了预编译任何 C 或 C++ 代码方式,将stdafx.h(预编译头)内的文件,以已编译状态的代码存储在文件中,以及在随后的编译中,将预编译的代码与仍在开发的代码结合起来,提高编译速度。

预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。 

编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。 

因此,所有的CPP实现文件第一条语句都是:#include "stdafx.h"。

报错问题也是与此有关

 

posted @ 2019-11-26 15:40  大尾巴贝贝  阅读(488)  评论(0编辑  收藏  举报