在Visual Studio中“创建预编译头”(/ Yc)和“使用预编译头”(/ Yu)之间有什么区别?

时间:2012-07-30 13:51:28

标签: c++ visual-studio visual-studio-2008 precompiled-headers compiler-options

我阅读了MSDN中的文档,但最后我并没有清楚地了解它们之间的实际区别。两者似乎都要求在每个* .cpp文件的顶部添加stdafx.h。

我正在使用VS2008。

任何人都可以帮忙解决问题吗?

2 个答案:

答案 0 :(得分:22)

如何在Visual Studio中使用PCH文件的简短摘要:

  • 项目中的所有cpp文件都必须包含stdafx.h(如果您愿意,可以将其更改为其他内容)
  • 在解决方案资源管理器中选择项目,然后在Properties -> C++ -> Precompiled Headers设置'创建/使用预编译的标题'使用'。点击申请
  • 在仍然显示属性页时,在解决方案资源管理器中选择stdafx.cpp并将值设置为'创建'

答案 1 :(得分:12)

好吧,我认为你必须先了解预编译头文件的用途。在大型项目中,例如,处理单个客户端扩展所需的所有头可能需要很长时间,因此有些人更喜欢将.pch文件与其库一起分发。为了生成.pch文件,您使用/Yc编译器标志,并且想要使用您的库的人将设置/Yu标志。有关详细信息,请参阅herehere