全新安装VS 2012不会构建默认控制台应用程序:缺少SDKDDKVer.h(和stdio.h/CRT)

Dan*_*aum 2 c++ visual-c++ visual-studio-2012

我在Windows 7 64位计算机上使用VS 2012 Professional的试用版约1个月.

今天,我注意到Platform Toolset选项(项目属性)设置为Visual Studio 2010 (v100),这似乎很奇怪,因为我正在运行VS 2012.将"Platform Toolset"更改为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':没有这样的文件或目录

我该怎么办?

.

附录:未来读者的注意事项; 更改路径设置后(请参阅下面的答案下方的注释)以便VS 2012找到SDKDDKVer.h,但它仍然无法找到stdio.h,这是一个更严重的问题,因为VC11版本的stdio.h(以及所有VC11 CRT)标头)在任何地方的机器上都不可用.

不幸的是,微软仍未在VS 2012安装过程中解决这些主要错误.我发现获得包含所有VC11 CRT文件的VS 2012安装的唯一方法是:

  • 擦除你的系统完全清理所有MS产品(这可能是矫枉过正,但除了卸载VS 2012之外我不得不至少卸载VS 2010)
  • 删除下面答案的注释中注明的注册表项(为了安全起见)
  • 删除剩余目录(为了安全)
  • 重启(安全)
  • 从头开始安装VS 2012来自.ISO,而不是安装程序(假设安装文件是从MSDN站点下载的)(使用像Power2Go这样的程序来安装.iso)
  • 那么,绝对确保安装VS 2012 Service Pack 1(通过"Windows Update"控制面板)(不执行此步骤,VC11 CRT标头仍未安装在机器上的任何位置)
  • 最后,按[此链接](链接现在指向一个骗局网站,已删除)中的描述映射Windows SDK库目录(不执行后一步骤,链接器无法找到Windows内核库的路径)

......那么VS 2012的工作安装.

非常感谢,微软.

Mus*_*mal 6

在我设置Visual Studio 2013之后,我对一个简单的C++代码有同样的sdk错误.我通过以下步骤解决了同样的问题:

  • 选择项目属性>配置> VC++目录>包含目录并添加: c:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Include
  • 选择项目属性>配置> VC++目录>库目录并添加: c:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Lib

在配置之后我遇到了关于rc.exe链接错误的问题.对于这个问题,还需要做一件事:

  • C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.1A\Bin复制RC.exeRcDll.dll文件 并将它们传递给C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\bin

完成所有这些配置步骤后,您可以构建一个简单的"Hello World!" 例如,如果你运气好的话就跑.