Visual Studio 2013:CL.exe退出,代码为-1073741515

fox*_*337 11 c++ windows winapi visual-studio-2012 visual-studio-2013

我有一个全新的 Windows 8.1 Pro x64安装与新的 Visual Studio 2013专业版.当我尝试使用Platform Toolset将项目编译到Windows7.1SDK时,我得到了

Error   1   error MSB6006: "CL.exe" exited with code -1073741515.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.targets   57  5   MenuBrowser
Run Code Online (Sandbox Code Playgroud)

我尝试运行提供的"Windows SDK配置工具",除了得到关于Visual Studio 2005和2008未安装的错误之外,我认为它确实起了作用.

我尝试手动编辑注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows
Run Code Online (Sandbox Code Playgroud)

在这里我手动把CurrentInstallFolder作为C:\Program Files\Microsoft SDKs\Windows\v7.1\CurrentVersion作为7.1.7600.0.30514.如果我查看项目属性并单击其中的不同路径/变量 - >更多 - >宏,我可以看到$(WindowsSdkDir)是正确的.

知道我应该尝试什么吗?从未在使用Windows 7和VS 2012的旧开发计算机上遇到此问题.

LE作为注释,如果我使用v120工具尝试新项目,它可以工作,但我需要Windows7.1SDK工具.

Han*_*ant 11

尝试使用Platform Toolset将项目编译为Windows7.1SDK时...

这不是VS2013"全新"安装中的有效选择.不太清楚你一直在做什么,它肯定不再"新鲜"了.将Regedit.exe视为一种加载的武器,配置VS的注册表键集最近变得非常糟糕.

编译器与-1073741515 == 0xC0000135 == STATUS_DLL_NOT_FOUND崩溃.当然,这是一个非常严重的事故,当你以SDK 7.1为目标时它永远不会发生,因为它仍然使用相同的编译器,只更改了SDK目录.编译器本身及其使用的DLL不是SDK的一部分,只有在机器没有安装VS的情况下才会提供.您可以使用SysInternals的进程监视器来诊断它,您将看到CL.EXE进程搜索DLL而不是找到它.

目标7.1 的正确方法是使用v120_xp工具集选择.这可以构建仍可在XP上运行的程序,它还会自动选择计算机上安装的7.1A SDK.请尝试撤消您所做的更改.

  • 今天我学会了!得到进程监视器,通过`cl.exe` 过滤,对mspdb100.dll 到处都是`CreateFile`ing 没有成功。我想就是这样!我会再处理一些(甚至可能安装 2010 Express),然后根据需要发表更多评论并标记答案。 (2认同)

小智 5

使用Windows SDK参考如何使用VS2012中的v90平台工具集在没有VS2008的情况下构建 Yodans解决方案 :

正如Hans Passant所指出的,cl.exe会查找mspdb100.dll(以及其他内容)并且找不到它们.所需文件位于以下7.中提到的目录中:

我的工作设置:

  1. VS2013需要使用VS2010库
  2. 在VS2013中使用WinSDK 7.1构建工具(v100)
  3. 干净安装,卸载sdk发行说明中提到的所有内容(可以在http://www.microsoft.com/en-us/download/details.aspx?id=8279下的类别详细信息下载)
    1. 适用于Windows 7的Microsoft Windows SDK(7.1)(Windows SDK核心组件文件)
    2. 应用验证程序
    3. 适用于Windows的调试工具
    4. Windows性能工具包
    5. Microsoft Help Viewer 1.0
    6. Microsoft Visual C++ 2010 Redistributable
    7. Microsoft Visual C++ 2010标准版
    8. 另外删除了所有与.NET和VC++相关的MS软件(如有必要,不进行测试)
  4. 在VS2013中选择Windows7.1SDK作为平台工具集
  5. 错误MSB6006:"CL.exe"退出,代码为-1073741515
  6. cl.exe查找msobj100.dll,mspdb100.dll,mspdbcore.dll和mspdbsrv.exe之一
  7. 添加到PATH:C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE
  8. 构建工作和二进制是可用的!

我做的一个错误:

  1. 将上面6.中的文件复制到C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin,认为这个目录是在PATH中,但事实并非如此!
  2. 使用Windows SDK,如果在没有VS2008的VS2012中使用v90平台工具集构建如何在上面或者Yodan中更好地进行操作