错误MSB6006:“cmd.exe”退出代码1

时间:2012-10-29 09:35:19

标签: visual-studio-2010 build compiler-errors

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

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

请告诉我们如何克服这个问题?

10 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

我今天遇到了同样的问题,而我正在将一些VC6项目升级到VC2012。

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

如果项目属性Custom Built Step中没有命令行,也许您应该检查项目的每个文件的属性。

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

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

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

你不会错过这种方式。

答案 2 :(得分:4)

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

  • 在底部的标准VS视图中选择标签Output
  • 点击菜单栏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.

答案 3 :(得分:2)

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

  1. 打开项目的.vcxproj文件
  2. 搜索标签
  3. 仔细检查这个标签里面的内容,路径是对的吗?调试和发布之间的区别,并修复它
  4. 清理并重建
  5. 我的情况。调试和发布mod的未命中匹配导致我的下午死亡。

              <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>
    

答案 4 :(得分:2)

我也遇到过类似的问题。

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

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

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

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

答案 9 :(得分:0)

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

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