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

sas*_*alm 16 c++ precompiled-headers compiler-options visual-studio-2008 visual-studio

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

我正在使用VS2008.

任何人都可以帮忙清理一下吗?

the*_*ill 23

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

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

  • +1清楚,简单,点到点答案. (2认同)
  • 你不需要这样做。如果您按照我上面列出的步骤进行操作,那么它会将它们全部设置为“使用”,然后您将“stdafx.cpp”覆盖为“创建”。 (2认同)

Mih*_*dor 13

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