首页 > 代码库 > 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