使用VC6.0运行.c文件,遇到错误fatal error C1853: 'Debugtest.pch' is not a precompiled header file created with

    xiaoxiao2022-06-30  85

    fatal error C1853: 'Debug/test.pch' is not a precompiled header file created with this compiler

    网上查了好多,有两种说法,但都没有解决我的问题:

    取消VC预编译,这样会使大项目编译变慢,而且取消后仍然无法通过编译。Rebuild all  /  先F7,然后CTRL+F7。 仍然不行

    真正的原因在于项目中包含有 .c 后缀的源码,而正确的文件名后缀应该是 .cpp !

     

    错误原因: 该错误是因为当项目中混合了 .cpp 和 .c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。 在 VC++ 中,默认的预编译头文件是针对 C++ 的 (stdafx.h 和 stdafx.cpp),当然也可以创建针对 C 的预编译头。

     

     

    stdafx.h的正确使用方法

     

    首先stdfax.h不是系统库文件,所以写成#include <stdfax.h>是不对的(虽然可以通过编译?),正确的写法是#include "stdfax.h"

     

    其次,每个.cpp文件(无论是否有对应的.h文件,都要写到.cpp中,写到.h中是不行的)的首行(不包括注释),都应该是以#include "stdfax.h"开头。

     

    .h文件中可以不用引用需要调用系统库文件,而可以将需要引用的系统库文件写入stdafx.h中。

     

    故将 #include<stdio.h>改为  #include "stdfax.h";并将文件名改为.cpp即可


    最新回复(0)