首页 > 代码库 > VS2010遇到fatal error C1083: 无法打开预编译头文件:“xxx.pch”: No such file or directory

VS2010遇到fatal error C1083: 无法打开预编译头文件:“xxx.pch”: No such file or directory

   对C++和VS2010非常不熟悉,但是无奈赶着项目,只能看了点基础就上手,然后就碰到这个问题了。

   原因分析:

     http://bbs.csdn.net/topics/340191697?page=1

      编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要从新编译,这样的编译将耗费很长时间。
      为了提高编译速度,将那些不常被修改,比较稳定,文件单独包含到一个指定的头文件中, 然后生成一个预编译头文件 *.pch 。 VC中默认的头文件为 stdAfx.h, 但光有头文件无法编译,所以还要用到 StdAfx.cpp里只包含一句有效代码,这样编译时,通过编译 stdAfx.cpp就把大部分系统头文件编译进来, Debug目录下便会产生一个 存储了预编译信息的 *.pch 文件。
      如果 *.pch文件损坏或者不存在,就会出现,题目所示的无法打开预编译头文件的错。

   解决方法:

   第一种:可以取消掉整个项目的预编译。右键项目-属性-配置属性-C/C++-预编译头-不使用预编译头。

   第二种:stdafx.cpp右键——属性,预编译头选“创建”,其它cpp选“使用”。

 

解释:转自http://www.cppblog.com/silekey/articles/87108.html

     

这里有个概念要先说明:

1>代码里面至少要有个CPP是用于创建预编绎头的.

2>其它CPP则都是选使用预编译头的.

3>预编译头是防止一些重复编译来达到加快编译速度的一个技术.

4>大多数人(其实只有我一个人,其它人没问过)碰到这个问题其实是他不知道每个.cpp的文件是可以并必须要分别设置预编译头参数的!!!!

 

 

然后我们编译获得以下两个错误:

 

fatal error C1010: 在查找预编译头时遇到意外的文件结尾。

 

fatal error C1083: 无法打开预编译头文件:“Debug\tMain.pch”: No such file or directory

 

 

 

把相应的错误翻译下来应该是这样的:

 

fatal error C1010: 老大,你说过这个.cpp文件是需要用预编译头的,没找到就罢工!

 

fatal error C1083: 全都是使用预编译头的,哪来的创建预编译头的cpp文件在哪!

 

对不起,没法办给你变出来.

 

VS2010遇到fatal error C1083: 无法打开预编译头文件:“xxx.pch”: No such file or directory