为什么我需要在C ++的所有文件中包含预编译的头文件?

时间:2012-06-15 14:06:00

标签: c++ visual-studio precompiled-headers

如果我在空的.cpp中不包含stdafx,我会收到此错误

fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?

为什么我甚至需要在虚拟文件中包含它?

2 个答案:

答案 0 :(得分:4)

您可以为每个翻译单元禁用预编译标头(在给定CPP文件的属性中)。如果您愿意探索配置GUI,也可以按项目执行。并非所有项目类型都指定PCH;它只是标准的Microsoft Way。

我从来没有在微软的土地上遇到过它们,所以"在C ++"有点过于笼统!

答案 1 :(得分:4)

如果您使用它们,则必须包含它们。但是你可以在项目属性中关闭它们。

但是,推荐使用它们的方法是从命令行“强制包含”PCH,以便文件本身不包含PCH。这样源文件就可以与其他系统兼容。