【发布时间】:2012-07-09 07:59:44
【问题描述】:
我今天第一次遇到了预编译的头文件……永远改变了我的生活。我不敢相信编译我的 C++ 代码会这么快。现在完全有道理了..
无论如何,让我感到困惑的一件事是,从我目前所读到的内容来看,预编译的头文件只应该添加到源文件中(cpp?)。
在 Visual Studio 中,项目属性->C/C++->高级下有一个选项可以“强制包含文件”。我将该编译器选项设置为 stdafx.h。
这样做之后..我不再需要包含我添加到我的 stdafx.h 的标题,即使在我的头文件中(源文件应该自动包含 stdafx.h )。这是预期的行为吗?
我在头文件/源文件之间的区别中找不到明确的地方。
如果确实如此.. 很好,但我担心这是 VC++ 让您侥幸逃脱但会在 GCC 中中断的另一件事。是的..它需要便携;至少在 GCC 和 VC++ 之间。
【问题讨论】:
-
好吧,如果您希望您的项目也可以在 gcc 上运行,那么您最好远离“强制包含文件”选项。 Boilerplate 就是让你的源代码文件中的第一个#include 成为预编译的头文件。
-
@Hans,等效的 gcc 功能是使用
-include命令行选项在每个文件的开头包含 stdafx.h。
标签: c++ visual-studio visual-c++ gcc precompiled-headers