打开一个类文件时出现:Cannot open precompiled header file 的错误的解决方法

时间:2021-08-02 19:36:35

fatal error C1083: Cannot open precompiled header file:

这时因为该模块没有包括预编译头文件“stdafx.h”的缘故。 
VC用一个stdafx.cpp包含头文件stdafx.h,然后在stdafx.h里包含大部分系统头文件,这 
样编译时VC就通过编译stdafx.cpp把大部分系统头文件预编译进来了,在Debug目录下有 
一个很大的文件*.pch,这里就存储了预编译信息。 
根据这个原理,如果这个pch损坏了或被删除了,系统重新编译时就会抱怨“cannot open 
precompiled header file debug/*.pch”。

这时怎么解决这个问题呢,打开Project-》 Setting对话框选C++页,将Category下拉式列表框选中Precompiled Headers

简单的办法就是选中第一个选项,"不使用预补偿页眉",这样就根本不用预编译头也不去寻找pch文件, 
就不会出错了,但是这样做的后果是每次编译、连接都化更多的时间。

也可以选第二个选项"自动使用预补偿页眉",然后在"通过页眉"里填上stdafx.h,这样 
如果没有pch文件系统会自动生成一个pch,如果有的话就使用这个pch,这个选项是比较“ 
智能”的