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 - 没有更多的自动预编译头文件?的主要内容,如果未能解决你的问题,请参考以下文章

C# Visual Studio 2010 未开始调试

.Net Framework 4.5 未出现在 Visual Studio 2010 中

Visual Studio 2010 总是认为项目已过时,但没有任何改变

将VS 2008与VS 2010结合使用

Visual Studio 2010 总是认为项目已过时,但没有任何改变

VisualStudio 2010 里面编辑C语言的时候怎么没有智能代码提示呢?