SDKDDKVer.h缺失,但安装了WinSDK? (c ++标题问题)

时间:2014-03-13 20:46:51

标签: c++ visual-c++ visual-studio-2012 header

因此,我最近使用.NET 4.5(Visual Studio 2012专业版)返回VC ++,因为在与web dev,python和c#一起度过了永恒之后,在新PC上出现了各种不相关的原因。我对整个语言非常熟悉,它在语法方面非常漂亮,我喜欢内存管理的自由,指针和参考。我重新开始了#34;你好世界"事和BAM!错误。

由于许多其他人都遇到此问题,我在尝试编译和运行时收到了IntelliSense错误:

cannot open source file "SDKDDKVer.h"" and the fatal error: "error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory

我也安装了Visual Studio 2010(C#Express),也许这搞砸了我的一些东西。我已经确认我的包含和lib的VC ++目录都是正确的,并且是Microsoft和几乎所有C ++开发人员推荐的。我试图安装最新的WinSDK(8.1)来获取标题及其所有功能,但我确信它不在110%左右。我现在正在为Win7安装SDK,希望它可以驻留在那里(虽然它确实需要很长时间。)

我的电脑有终端蓝屏的问题,只针对任何问题,只需将机器单独放置15分钟即可解决,这可能是硬盘问题吗?

你们任何人都可以帮忙吗?绝对任何抬头,居高临下,明显与否,都会受到赞赏,无论如何都要感谢阅读。

编辑:@MichaelBurr要求提供构建日志,我无法将其全部发布在底部,所以我想我会在这里添加。

Build started 14/03/2014 00:34:11.
 1>Project "c:\Users\Brandon\documents\visual studio 2012\Projects\ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.vcxproj" on node 2 (Build target(s)).
 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(344,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.
 1>ClCompile:
     C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /ZI /nologo /W3 /WX- /sdl /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc"stdafx.h" /Fp"Debug\ConsoleApplication4.pch" /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /analyze- /errorReport:prompt stdafx.cpp
     stdafx.cpp
 1>c:\users\brandon\documents\visual studio 2012\projects\consoleapplication4\consoleapplication4\targetver.h(8): fatal error C1083: Cannot open include file: 'SDKDDKVer.h': No such file or directory
 1>Done Building Project "c:\Users\Brandon\documents\visual studio 2012\Projects\ConsoleApplication4\ConsoleApplication4\ConsoleApplication4.vcxproj" (Build target(s)) -- FAILED.

构建失败。

时间流逝00:00:00.12

9 个答案:

答案 0 :(得分:16)

如果以上信息无法解决您的问题,我建议采用以下步骤来解决我的VS2013体验:

  1. 选择项目属性>配置> VC ++目录> 包含 目录并添加: c:\ Program Files(x86)\ Microsoft 的SDK \的Windows \ v7.1A \包含
  2. 选择项目属性>配置> VC ++目录> 库 目录并添加: c:\ Program Files(x86)\ Microsoft 的SDK \的Windows \ v7.1A \库
  3. 在配置之后我遇到了关于rc.exe链接错误的问题。对于这个问题,还需要做一件事:

    1. C:\ Program Files复制 RC.exe RcDll.dll 文件 (x86)\ Microsoft SDKs \ Windows \ v7.1A \ Bin 并将它们转到 C:\ Program 文件(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin 毕竟这些 配置步骤,您可以构建一个简单的" Hello World!"例 如果你幸运的话,就跑。

答案 1 :(得分:3)

我刚才遇到了这个问题。经过数小时和数小时尝试通过查看不同的路径并尝试更改它们来解决问题,卸载所有MS产品并重新安装它们等没有任何成功,我发现解决方案是打开文件C:\ Users \ {用户} \ AppData \ Local \ Microsoft \ MSBuild \ v4.0 \ Microsoft.Cpp.Win32.user.props并更改

<PropertyGroup>
  <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\BCGCBPro;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\BCGCBPro</IncludePath>
  <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\bin;C:\Program Files (x86)\BCGSoft\BCGControlBarPro\bin</LibraryPath>
</PropertyGroup>

<PropertyGroup />

我不知道这个问题是如何产生的,但是我通过从同事的机器上复制文件找到了解决方案。问题可能是最近安装和卸载BCGControlBarPro ...

答案 2 :(得分:3)

这个对我有用:  &#34;当我将解决方案从VS2010转换为VS2013时,最近遇到了这个问题。我通过简单地检查&#34;继承父项目或项目默认值来解决它&#34; “项目属性”下的复选框&gt;配置&gt; VC ++目录&gt;包含每个项目所有配置的目录。&#34;

答案 3 :(得分:2)

Mustafa Kemal的答案是正确的,但如果您不想单独为每个VC ++项目添加此目录和库,则应在Windows环境变量中将它们定义为系统变量,然后重新启动计算机。

变量名称:WindowsSDK_IncludePath, 变量值:c:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.1A \ Include。

变量名称:WindowsSDK_LibraryPath_x86, 变量值:c:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.1A \ Lib

答案 4 :(得分:2)

我知道这个问题有几个答案,但我想解释一下为我解决了什么问题。我搜索,搜索和搜索,并没有找到很多好材料。我的解决方案是右键单击我的项目,转到属性。在属性选项卡中,我将WindowsSDK版本更改为我安装的唯一版本。这解决了这个问题。

为什么会这样?我不确定,但它发生在Visual Studio执行更新之后以及Windows Update安装了最新版本的Windows 10之后。我的猜测是,当发生这种情况时,项目中的SDK版本与安装的SDK不匹配。

我希望这可以在将来的搜索时间内拯救某人!

答案 5 :(得分:1)

当我将解决方案从VS2010转换为VS2013时,我最近遇到了这个问题。我只需检查&#34; 从父级或项目默认值继承&#34;对于每个项目的所有配置,项目属性&gt;配置&gt; VC ++目录&gt;包含目录下的复选框。

答案 6 :(得分:0)

我正在运行2008,2010,1012和2013安装在同一台机器上 - Windows 7和XP 32和64位,7 32位,没有任何问题。

您是否正在尝试构建由另一个版本的VS创建的项目?

您的项目中设置的依赖项似乎存在问题,或者您的SDK版本设置为错误版本时出现问题。

如果您创建另一个项目,例如,基于对话框的应用程序;这个问题持续存在吗? 您不必运行任何批处理文件。

  • 打开项目属性(右键单击项目并选择 属性)。

  • 在“配置属性”下选择“常规”

  • 检查右侧窗格中的平台工具集。它不应该被设置 到Visual Studio 2008(V90)。

尝试重建。如果问题仍然存在,请分享您的项目。

压缩它并使用一些共享服务发布它(例如dropbox)。

答案 7 :(得分:0)

您发布的空白项目是否存在同样的问题? 我已经尝试使用Windows 7 32和64位以及XP 32位构建您的项目。 所有构建都很好,找到SDKDDKVer.h没问题。

您的依赖项路径设置必定存在问题。

您可能已将VS设置从VS的一个安装转移到另一个,可能是从32位到64位(反之亦然)? 如果是这种情况,请记住您的路径可能包含错误的文件夹名称。 对于32位系统,所有应用程序默认安装到C:\ Program Files,而在64位计算机上,所有32位应用程序都安装到Program Files(x86)。这是VS的一个案例。所有包含文件都在:

  • C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Include - 原始VS安装
  • C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.1A \ Include - 安装7.1 VS SDK后

如果您安装了其他SDK软件包,则可能有另一个SDKDDKVer.h文件夹:

  • C:\ Program Files(x86)\ Windows Kits \ 8.0 \ Include \ shared
  • C:\ Program Files(x86)\ Windows Kits \ 8.1 \ Include \ shared
  • C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Include
  • C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0 \ Include
  • C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Include

在项目设置中,您应该拥有以下包含路径:

  • $(VCInstallDir)包括
  • $(VCInstallDir)atlmfc \包括
  • $(WindowsSDK_IncludePath)

注意使用的宏。它们应该从父级的默认设置继承。 您可以通过编辑保存在Microsoft.Cpp.Win32.user.props文件中的设置,在属性管理器中覆盖路径设置。

如果您的项目是从早期版本的VS转换而来,可能会发生这种情况。

答案 8 :(得分:0)

当您为包含或库添加路径并删除已在项目属性中编写的原始路径时,有时会发生这种情况。

您不应删除include或lib目录的旧路径,例如$(VCInstallDir)include; $(VCInstallDir)altmfc \包括: $(WindowsSdkDir)包括: $(FrameworkSDKDir)\包括;

同样的事情是lib路径只需用lib替换每个include。

最好的问候