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

unj*_*nj2 1 c++ precompiled-headers visual-studio

如果即使在空的.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?
Run Code Online (Sandbox Code Playgroud)

为什么即使在虚拟文件中也需要包含它?

Roo*_*ook 5

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

我从未在Microsoft领域之外遇到过它们,因此“在C ++中”有点笼统!


Meh*_*dad 5

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

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