VisualStudio 2010 - 没有更多的自动预编译头文件?
Posted
技术标签:
【中文标题】VisualStudio 2010 - 没有更多的自动预编译头文件?【英文标题】:VisualStudio 2010 - no more automatic precompiled headers? 【发布时间】:2014-12-03 13:09:03 【问题描述】:VisualStudio6 中有一个编译器选项 /YX 可以自动生成预编译头文件。不需要 stdafx.h/cpp 文件,PCH 文件是从带有或不带有 #pragma hdrstop 指令的 CPP 标头自动生成的。
Visual Studio 2010 中似乎缺少自动 PCH (/YX)。只有 /Yc(创建)或 /Yu(使用)可用。
有人知道怎么找回吗?
干杯
【问题讨论】:
【参考方案1】:/YX 已被弃用。您必须改用 /Yc 和 /Yu。
Microsoft states: "如果您从构建配置中删除 /YX 并将其替换为任何内容,则可以加快构建速度。"
基本上没有节省时间,因为 /YX 经常猜错。所以增加的开销只是一种浪费。
【讨论】:
【参考方案2】:这是removed in Visual Studio 2005。我将不得不挖掘原因,但我怀疑并行编译等功能不适用于自动预编译头文件。
BTW 2010 是 Visual Studio 的旧版本。如果你想使用最兼容(和更快)的编译器,你应该使用 Visual Studio 2013。Professional version 是免费的,尽管它现在被称为“社区”。它支持 C++ 和以前版本中专业版的所有功能。
您将从并行编译支持中获得比自动预编译头文件更快的编译。 2010 年和 2013 年在速度、合规性、库支持和调试方面存在巨大差异。
更新
我找到了announcement,原因是自动预编译头文件并没有比不使用它们带来任何改进。使用 /Yc 创建一次然后使用 /Yu 重用它们更快(也更稳定)
【讨论】:
以上是关于VisualStudio 2010 - 没有更多的自动预编译头文件?的主要内容,如果未能解决你的问题,请参考以下文章
.Net Framework 4.5 未出现在 Visual Studio 2010 中
Visual Studio 2010 总是认为项目已过时,但没有任何改变