我在Windows 7 64位计算机上使用VS 2012 Professional的试用版约1个月。
今天,我注意到Platform Toolset
选项(项目属性)设置为Visual Studio 2010 (v100)
,这似乎很奇怪,因为我正在运行VS 2012.将“平台工具集”更改为VS 2012导致这个问题标题中提到的错误:
无法打开包含文件:'SDKDDKVer.h':没有这样的文件或目录
...在构建stdafx.cpp
时(错误本身出现在文件targetver.h
中)。
我之前浏览的论坛讨论暗示VS 2010安装期间VS 2010的存在可能导致了这个问题。 (我目前没有这些帖子的链接。)
因为我最近购买了VS 2012 Professional,所以我卸载了VS 2012的试用版,然后从MSDN网站上重新下载了重新安装的付费版VS 2012(专业版)。总而言之,卸载/重新安装需要2个小时左右。
在重新安装VS 2012期间,我非常关注所有可能的选项,看看是否有任何选项可能导致VS 2012安装程序“跳过”VS 2012头文件或其他VS 2012组件,并使用而是VS 2010组件。我找不到这样的选择。
VS 2012的重新安装成功。
我在新工作区中创建了一个新的控制台项目(请注意,尽管卸载/重新安装,但我的“最近的项目列表”仍然显示了我最近的VS 2012项目)。新控制台项目的项目设置显示正在使用正确的工具集 - Platform Toolset
= Visual Studio 2012 (v110)
。
不幸的是,构建开箱即用的VS 2012控制台应用程序(包括预编译的标题选项,但在“创建项目向导”中没有其他选项)会导致完全相同的错误:
无法打开包含文件:'SDKDDKVer.h':没有这样的文件或目录
我该怎么办?
ADDENDUM:请注意以后的读者;更改路径设置后(请参阅下面的答案下方的注释)以便VS 2012找到SDKDDKVer.h,但它仍然无法找到stdio.h,这是一个更严重的问题,因为VC11版本的stdio.h(以及所有VC11 CRT)标头)在任何地方都没有。
不幸的是,微软仍未在VS 2012安装过程中解决这些主要错误。我发现安装包含所有VC11 CRT文件的VS 2012安装的唯一方式是:
......那么VS 2012的工作安装。
非常感谢,微软。
答案 0 :(得分:6)
在我设置Visual Studio 2013后,我对一个简单的C ++代码有同样的sdk错误。我通过以下步骤解决了同样的问题:
在配置之后我遇到了关于rc.exe链接错误的问题。对于这个问题,还需要做一件事:
完成所有这些配置步骤后,您可以构建一个简单的“Hello World!”例如,如果你幸运的话就跑。
答案 1 :(得分:1)
来自MSDN forum:
查看此项目的Include目录,我看到以下
$(WindowsSdkDir)包括
“WindowsSdkDir”被定义为“C:\ Program Files(x86)\ Windows Kits \ 8.0 \”
不幸的是,文件夹 “C:\ Program Files(x86)\ Windows Kits \ 8.0 \ Include \”实际上并非如此 有任何头文件。相反,它包含三个子文件夹。 其中一个是名为“shared”的文件夹,它恰好包含在内 “SDKDDKVer.h”文件显示在错误消息中。
如果是这种情况,请将$(WindowsSdkDir)include
替换为VC ++目录下项目属性中包含路径中的三个文件夹名称(至少为$(WindowsSdkDir)include\shared
)。
要将此路径永久添加到VS2012,您需要更改Microsoft.Cpp.Win32.user.props
文件夹下的C:\Users\xxx\AppData\Local\Microsoft\MSBuild\v4.0
文件(其中xxx是您的用户名)。
答案 2 :(得分:1)
我在VS2013遇到了这个问题。当我首先单独安装Windows SDK 8.1,然后是Visual Studio 2013时,它解决了问题。
我还应该注意到我在Windows 7 w SP 1虚拟机上安装它并且在安装过程中没有连接到互联网(我在别处读过一些人认为安装过程中的互联网连接会修复问题,但我个人无法验证,现在我有它工作,我不打算回溯并测试它。)