现在的位置: 首页 > 综合 > 正文

fatal error C1083: Cannot open precompiled header file: ‘Debug\xxoo.pch’: No such file or directory

2012年11月24日 ⁄ 综合 ⁄ 共 771字 ⁄ 字号 评论关闭

      相信很多童鞋都遇到过这种问题,找不到pch文件,看这个描述肯定是与预编译头有问关系。(预编译头有神马作用就不说了,可以自己了解下)。一般遇到上面的问题很有可能是拷贝工程的时候,把stdafx.h stdafx.cpp文件删除了,而此时你即使把这两个文件再加入工程还是会报上面的错误。要重现这个错误也很简单,按上面的说法,新建一个标准工程,然后把stdafx.h stdafx.cpp文件删除,再编译肯定会报这个错误的。

      这个错误的根源在于,编译器发现有源文件(CPP,C……)带有/Yu编译选项,但是找不到一个源文件带有/Yc选项,解决方法也就很明显了,至少有两个:

      1、把所有源文件都设置为不使用预编译头,如果文件少还好说,如果多而且还在不同的Filter里面的话,那就坑爹了。

      2、随意设定一个源文件为创建预编译头属性。当然最好还是加入 stdafx.cpp文件,并对其进行设置。注意到设置Precompiled Headers右边的第二行,Create/User
PCH Through File
,在这里指定创建预编译头针对的头文件。正常情况下(如果你没改动)应该是StdAfx.h文件,如果你另外指定了一个文件,那么需要在所有的源文件的最前面包含这个头文件,你懂的。如果你不怎么做,会报一个更“恐怖”的错误,fatal error C1010: unexpected end of file while looking for precompiled header。简直比坑爹还坑爹。相信这个错误遇到的人就更多了……

 

      对于/Yc选项可以去看下MSDN上的描述<http://msdn.microsoft.com/en-us/library/7zc28563.aspx >,相信应该就比较清楚了。

 

      【END】

抱歉!评论已关闭.