Visual Studio 2015 (C++):在第一次构建错误时停止编译(不是第一个项目)

Posted

技术标签:

【中文标题】Visual Studio 2015 (C++):在第一次构建错误时停止编译(不是第一个项目)【英文标题】:Visual Studio 2015 (C++) : Stop compile on first build error (not first project) 【发布时间】:2017-01-15 13:13:27 【问题描述】:

Visual Studio 2015 检测到编译错误时如何停止编译?

我的意思是第一个构建错误(可能是第一个.cpp),而不是第一个项目,因为它需要太多时间。 (我只有一个项目。)

名为"StopOnFirstBuildError" 的扩展名不是答案, 因为它停在有错误的第一个项目上。

问题

(更详细)

当我按下 F5Ctrl+Shift+B 时,编译器将编译所有(或部分)文件。 就我而言,它只用 5 秒就可以检测到一些错误,所以我希望它现在停止编译。 但是,VS 2015 变得无响应。 对Ctrl+Break也有很强的抵抗力。 大约需要 30 秒才能导航到错误位置。 如何在第一个编译错误时自动停止编译过程?

历史

有 an old thread 询问有关 Visual Studio 2008 的问题。 它最被接受的解决方案是去:-

Visual Studio -> Tools -> Macros -> Macro IDE...  (or ALT+F11)

并粘贴a certain piece of code。

但是,macro is not supported anymore in VS 2012. (我尝试在VS 2015中按Alt+F11,没有出现宏编辑器/菜单。)

声明与a question for VS 2010一致,表示上述技巧无效。

The solution VS2010 的问题是安装一个名为"CancelFailedBuild" 的扩展。

因此,我下载了它。 执行.vsix(安装程序)时,它说 “此扩展程序不可安装在任何当前安装的产品上。”。 ...这是有道理的,因为扩展名说“适用于:Visual Studio 2010、2012”。

现在我想我只有一个选择了:- 通过安装 Macros extension 使用宏(旧的 VS 2008 方式)。 (扩展是users' complain about losing the old macro feature的结果。)

下载扩展是个好主意吗? 如果是这样,那之后的步骤是什么?有我应该复制粘贴的代码吗? 如果没有,有什么更简单的方法?

很抱歉发布了很多超链接。

解决方法

以下是可以减轻一些不便的方法,但根本不回答实际问题。

    Install a patch that make Visual Studio responsive,所以 Ctrl+Break 有效。 它需要我手动按键盘。 它似乎只适用于 Windows 7。(未测试)

    通过创建一个简单的虚拟.cpp,然后是compiling only that single file来缩短编译时间。 它在某些情况下很有用。

【问题讨论】:

这是有道理的,因为扩展程序说“适用于:Visual Studio 2010, 2012 您通常可以解压缩 vsix 并更改清单。 @ta.speot.is 怎么样?我对vsix 的了解为零。我猜它可能还会调用一些只存在于旧版本 VS 中的脚本函数。 这只是一个 zip 文件。 grantwinney.com/… @ta.speot.is 它适用于这个插件(“CancelFailedBuild”)。只需将清单修改为<VisualStudio Version="14.0"> 非常简单。谢谢!如果需要,您可以将其发布为解决方案。 :) 很高兴它成功了。 【参考方案1】:

VS2010问题的解决方法是安装一个名为“CancelFailedBuild”的扩展。

...

此扩展程序不可安装在任何当前安装的产品上。

...这是有道理的,因为扩展程序说“适用于:Visual Studio 2010、2012。”

Visual Studio 2012 扩展经常与 VS2013 和 VS2015 兼容。您可以通过解压缩 .vsix 文件(它只是一个 ZIP 存档)并更新其清单(它是一个 XML 文件)来自行更新扩展。

This guide 显示要更改的 XML 元素。

【讨论】:

以上是关于Visual Studio 2015 (C++):在第一次构建错误时停止编译(不是第一个项目)的主要内容,如果未能解决你的问题,请参考以下文章

在 Microsoft Visual Studio 2015 的 C++ 项目中包含 Armadillo C++ 库

加载 Visual Studio 2015 C++ 项目时出错,如何调试

Visual Studio 2015 Update 1 中的 C++ 内部编译器错误

如何在 Visual Studio 2015 中成功导出 C++ 项目模板?

如何在visual studio2015 中配置编写C,C++程序

Visual Studio 2015 更新 1 C++“断点绑定失败”