【问题标题】:error MSB6006: "CL.exe" exited with code -1073741805错误 MSB6006:“CL.exe”退出,代码为 -1073741805
【发布时间】:2014-12-15 00:42:56
【问题描述】:

在 VS 2010 中构建 C++ 应用程序时出现以下编译错误

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(153,5): error MSB6006: "CL.exe" exited with code -1073741805。

我知道它与属性设置有关,但我不太确定我应该怎么做,有人可以告诉我我应该怎么做才能消除这个错误吗?..提前致谢。

【问题讨论】:

  • 我不认为您最近删除了一些可移动存储(USB 驱动器、电话等)没有“安全删除...”协议 first ?只是好奇。
  • 我不知道..:(
  • 不管是什么触发了它,它编译器中的一个错误。以非零返回码退出且没有来自编译器的错误消息的编译器是错误的。
  • 将状态码转换为十六进制得到 0xc0000013, STATUS_NO_MEDIA_IN_DEVICE, "There is no disk in the drive"。环境问题,磁盘设备在您的机器上运行不正常。在不了解您的机器的情况下很难猜测根本原因。先重启,接下来试试 SysInternals 的 Process Monitor。

标签: c++ visual-studio-2010 compiler-errors msbuild visual-c++-2010


【解决方案1】:

我在查找和报告编译器错误方面拥有丰富的经验。

首先,MSBuild 会留下一些文件,其中包含用于调用 CL.exe 的实际命令行。它还设置环境变量,因此您可能需要查看 /v:d 输出以查看重现的实际步骤。获取 CL.exe 以在没有 MSBuild 的情况下产生错误。

然后从源文件中删除一些东西,直到你得到一个仍然会烧毁编译器的小东西。我从底部开始删除东西。我删除了不再需要的#include;展开剩下的底部并继续。

保存每个“保存”,以便在您终止错误时退出。

然后,用 MS 记录一个事件。一旦他们将它送到适当的部门,然后确定这是一个编译器错误,他们将退还您的事件。我记得订阅 MSDN 有 3 个学分;用它来让它滚动。

【讨论】:

  • 我放弃了,这很烦人。相反,我创建了一个新的解决方案并再次添加了我的所有文件。它运行良好..:)
【解决方案2】:

您可能导入了与当前构建环境不兼容的属性表。

尝试打开 Property Manager 并查看是否存在任何自定义属性表。

我刚从 VS2010 迁移到 VS2013 时遇到了这个问题,我有一些旧的 Windows 8.1 SDK 属性表。从命令行构建会导致此错误,而在 Visual Studio 中构建则很好。

【讨论】:

  • 这是正确的答案。尝试更改“平台工具集”,问题已解决。
猜你喜欢
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多