34

当我尝试使用 2010 构建我的 VC++ 代码时,我收到了错误消息

> C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code 1.

请告诉如何克服这个?

4

10 回答 10

13

通过以下方式之一导航Error List Tab到 Visual StudiosOutput文件夹:

  • Output在底部的标准 VS 视图中选择选项卡
  • 单击菜单栏View > OutputCtrl+Alt+O

Show output from <build>应该选择哪里。

您可以通过分析输出日志了解更多信息。


就我而言,这是 Cmake 步骤中的错误,见下文。如其他答案中所述,它可以在任何构建步骤中。

> -- Build Type is debug 
> CMake Error in CMakeLists.txt:
>     A logical block opening on the line
>     <path_to_file:line_number>    
>     is not closed.
于 2018-01-12T12:52:57.453 回答
5

error MSB6006: "cmd.exe"退出代码-Solved

我也面临这个问题。在我的情况下,这是由于output exe已经运行。我解决了我的问题,只需在构建之前关闭应用程序实例。

于 2013-12-05T04:58:51.230 回答
4

我今天有同样的问题,当我将一些 VC6 项目升级到 VC2012 时。

就我而言,这是因为 Custom Built Steps 中的某些操作失败了。在项目属性中,转到自定义构建步骤,您可以在命令行编辑框中看到一些内容。打开 Windows 提示符并将命令粘贴到其中。运行,检查是否有问题并修复它。

如果项目属性自定义构建步骤中没有命令行,也许您应该检查项目的每个文件的属性。

如果命令行有一些宏,请将其替换为实际值。

或者您可以在 VS 输出窗口中回显命令:

  • cd %(somedir)%
  • echo %(somedir)%

这样你就不会错过了。

于 2012-11-23T06:53:04.073 回答
3

我解决了这个问题。双击此错误会导致行为。

  1. 打开项目的 .vcxproj 文件
  2. 搜索标签
  3. 仔细检查这个标签里面发生了什么,路径是否正确?调试和发布之间的区别,并修复它
  4. 清理并重建

对于我的情况。调试和发布模式的错过匹配会杀死我的下午。

          <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy ..\vc2005\%(Filename)%(Extension) ..\..\cvd\
</Command>
      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy ..\vc2005\%(Filename)%(Extension) ..\..\cvd\
</Command>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\cvd\%(Filename)%(Extension);%(Outputs)</Outputs>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\cvd\%(Filename)%(Extension);%(Outputs)</Outputs>
      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy ..\vc2005\%(Filename)%(Extension) ..\..\cvd\
</Command>
      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy %(Filename)%(Extension) ..\..\cvd\
</Command>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\cvd\%(Filename)%(Extension);%(Outputs)</Outputs>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\cvd\%(Filename)%(Extension);%(Outputs)</Outputs>
    </CustomBuild>
于 2015-06-03T10:48:08.917 回答
3

实际上只需删除构建(清理它),然后重新启动编译器,再次构建它,问题就解决了。

于 2018-01-08T20:09:50.720 回答
2

我也面临类似的问题。

我的源路径有一个带有“空格”的目录(D:/source 2012)。我通过删除空格(D:/source2012)解决了这个问题。

于 2015-09-25T07:26:34.923 回答
1

为了未来的读者。我的问题是我指定了一个不兼容的 openssl 库来通过 CMAKE 构建我的程序。项目已生成,但构建开始失败并出现此错误,没有任何其他有用信息或错误。详细的 cmake/编译日志也没有帮助。

我的经验教训是交叉检查不兼容性,以防您的程序依赖于任何其他第三方库。

于 2018-04-03T14:52:43.437 回答
0

简单而更好的解决方案:%WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln 我制作了一个像 %WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe D这样的 bat 文件:\GESTION-SOMECOPA\GestionCommercial\GestionCommercial.sln 暂停

然后我可以看到所有错误并纠正它们。因为当您更改文件夹名称(如上所示没有空格)时,您将遇到另一个问题。Visual Studio 2015 在此之后工作正常。

于 2017-04-11T00:19:55.960 回答
0

另一种解决方案可能是,您从项目中删除了一个文件,只需在文件系统中删除它,而不是在项目中删除它。

于 2017-03-22T10:35:40.037 回答
0

当使用一个版本控制系统时,所有文件在签出之前都是只读的(如 Perforce),问题可能是您不小心将 VS 文件之一(例如过滤器)提交到此版本控制系统,因此文件在构建期间不能被覆盖。

只需转到您的工作目录并检查与 VS 解决方案相关的文件和临时创建的文件(例如 QT 中的所有 moc_ 和 ui_ 前缀文件)都不是只读的。

于 2018-02-28T12:02:28.923 回答