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即可