无法打开包括文件:“SDKDDKVer.h”: No such file or directory

转载 2016年08月31日 13:12:21

在已经装有Visual Studio 2010的系统中,同时安装Visual Studio 2012,安装过程很顺利,但到使用VS2012时,却出问题了。

本文主要介绍:VS中新建工程编译时出现,“无法打开包括文件:“SDKDDKVer.h”:  No such file or directory”问题的解决方法。
一 原因
相关解释见:
http://blog.csdn.net/tianrolin/article/details/29208847

博文主要介绍了VS2012中出现该问题的解决方法,VS2010中解决方法类似。
二 解决方法
VS2010VS2012包括文件和库文件的宏定义如下:
VS2010:
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(WindowsSdkDir)include

$(VCInstallDir)lib
$(VCInstallDir)atlmfc\lib
$(WindowsSdkDir)lib

VS2012:
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(WindowsSDK_IncludePath)

$(VCInstallDir)lib
$(VCInstallDir)atlmfc\lib
$(WindowsSDK_LibraryPath_x86)

记事本打开:
“C:\Users\Administrator\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props”
(AppData是隐藏文件夹,可以把“C:\Users\Administrator\AppData”复制到文件对话框路径窗口,回车打开,也可以复制到在“开始”搜索中,回车打开)
1. 如果VS2010中出现该问题,在<IncludePath>字段中添加$(WindowsSdkDir)include,在<LibraryPath>字段中添加$(WindowsSdkDir)lib
2.如果VS2012中遇到该问题,在<IncludePath>字段中添加$(WindowsSDK_IncludePath),在<LibraryPath>字段中添加$(WindowsSDK_LibraryPath_x86)
三“转换到  COFF 期间失败: 文件无效或损坏”问题解决
VS安装目录下搜索cvtres.exe,如果安装多个VS会搜索到不止一个cvtres.exe,如果VS2010中出现该问题,可以把VS2012中的cvtres.exe替换VS2010目录下的cvtres.exe,VS2012出现问题用VS2010中的cvtres.exe替换。
VS2010目录:

C:\Program  Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe

VS2012目录:
C:\Program  Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe

四 VS2012 " fatal error C1083: 无法打开包括文件:"stdio.h": No such file or directory"
原因:安装过程出现问题,安装目录VC文件夹下的include文件和lib文件,缺少.h和.lib 文件
解决:找到安装目录,默认为:C:\Program Files\Microsoft Visual Studio 11.0\VC
再找一个安装正确的目录,同样找到其安装目录下的VC文件夹,用VC文件夹中的include和lib文件夹,替代自己VC下的include和lib文件夹。1、当保持项目为2010版本(即打开2010的项目,并且不选择更新为2012项目)编译项目时,发生下述链接错误:



 

LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏。

这是因为与VS 2010配套的cvtres.exe文件版本不正确引起的。使用下面链接中的版本替换Program Files\Microsoft Visual Studio 10.0\VC\bin路径下的同名文件。

http://download.csdn.net/detail/delbboy/4534577

估计是安装VS 2012时,更新了系统中的相关组件,导致VS 2010原有的cvtres.exe失效,如果安装有VS 2010 SP1,则不会出现这个问题,应该是SP1与VS 2012所做的更新兼容。

 

2、编译VC++项目时,发生下述编译错误:

C1083: 无法打开包括文件:“SDKDDKVer.h”: No such file or directory.

这是因为VS 2012与VS 2010有着不同的Include和Library目录结构,而VS 2012继承了VS 2010的Include和Library搜索目录设置(真不知道M$在想什么),因此编译时找不到相应包含文件和库文件。

解决办法是在头文件的搜索目录中添加$(WindowsSDK_IncludePath);,同时在库文件的搜索目录中添加$(WindowsSDK_LibraryPath_x86); 或 $(WindowsSDK_LibraryPath_x64);,32位系统选择前者,64位系统选择后者。

目前已成功在同一系统中同时使用VS2012、VS2010和VS2008 (VS2010和VS2008都用一阵子,懒得卸载了)。本机安装了两个版本的VS就可能会出现这个编译错误, 比如我机器上同时装了VS2012和VS2008.




 

VS2012中关于Windows SDK的路径宏定义和VS2008不同,而在某种情况下VS2008的配置串扰到了VS2012.

VS2012继承了VS2008的Include和Library搜索目录设置,,因此编译时找不到相应包含文件和库文件。

解决办法, 在VS2012的头文件的搜索目录中添加$(WindowsSDK_IncludePath);,同时在库文件的搜索目录中添加$(WindowsSDK_LibraryPath_x86);(WindowsSDK_LibraryPath_x64);



可以试试在 INCLUDE 目录增加:$(WindowsSDK_IncludePath)
在 LIB 目录增加:$(WindowsSDK_LibraryPath_x86)
如果是ARM平台或X64平台,用这两个宏:$(WindowsSDK_LibraryPath_arm) 、$(WindowsSDK_LibraryPath_x64)。
以上修改之后应该就可以解决。

出现问题的原因应该是,之前安装了VS10或之前版本的IDE。IDE之间的路径设置共享,但是确有冲突。
SDK7.1 的INCLUDE 路径默认是:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
SDK8.1 的 INCLUDE 路径默认是:C:\Program Files (x86)\Windows Kits\8.1\Include\um
在结尾多了个 um


C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\winsdkver.h
 

/*
 
Copyright (c) Microsoft Corporation. All rights reserved.
 
Module Name:
 
    WinSDKVer.h
 
Abstract:
 
    Master include file for versioning content that ships in the Windows SDK.
 
*/
 
#ifndef _INC_WINSDKVER
#define _INC_WINSDKVER
 
#pragma once
 
// This list contains the highest version constants supported by content in the Windows SDK.
 
#define _WIN32_MAXVER           0x0601
#define _WIN32_WINDOWS_MAXVER   0x0601
#define NTDDI_MAXVER            0x0601
#define _WIN32_IE_MAXVER        0x0800
#define _WIN32_WINNT_MAXVER     0x0601
#define WINVER_MAXVER           0x0601
 

 

#endif

无法打开包括文件:“mysql..h”: No such file or directory

出现这个问题后,根据网上提供的方法做了很多,但都没有用。后来在盘里面找了一下确实没有mysql.h这个文件,原来mysql必须选择complete安装方式才会有这个头文件。首先重新安装了一次mysql...
  • xiaotianlan
  • xiaotianlan
  • 2015年12月16日 15:00
  • 5493

vs2010 无法打开包括文件:“SDKDDKVer.h”: No such file or directory

在vs2010编译时遇到vs2010 无法打开包括文件:“SDKDDKVer.h”: No such file or directory的错误 解决方案:工程属性->右键->VC++目录 在...
  • shuixiaowei0530
  • shuixiaowei0530
  • 2017年06月19日 20:37
  • 1071

VS2013编译时出现无法打开包括文件: “SDKDDKVer.h”: No such file or director

解决方案:项目--右键--属性--配置属性--常规--平台工具集--选择Visual Studio 2013 -WindowsXP(v120_xp)...
  • u013193026
  • u013193026
  • 2016年12月09日 23:31
  • 1144

无法打开包括文件:“SDKDDKVer.h

无法打开包括文件:“SDKDDKVer.h”: No such file or directory 在已经装有Visual Studio 2010的系统中,同时安装Visual Studio 20...
  • pupu_2009
  • pupu_2009
  • 2016年11月10日 15:17
  • 2212

解决vs2012报错 无法打开包括文件“SDKDDKVer.h”: No such file or directory

解决方法: 在项目的包含目录里添加: $(WindowsSDK_IncludePath) 在项目的库目录里添加: $(WindowsSDK_LibraryPath_...
  • MarStarck
  • MarStarck
  • 2015年12月01日 16:33
  • 3057

编译错误 无法打开包括文件:“SDKDDKVer.h”: No such file or directory

本机安装了两个版本的VS就可能会出现这个编译错误, 比如我机器上同时装了VS2012和VS2008. VS2012中关于Windows SDK的路径宏定义和VS2008不同,而在某种情况下VS200...
  • SysProgram
  • SysProgram
  • 2015年04月24日 18:23
  • 10270

无法打开包括文件的解决办法

出现这个错误只有2种可能,一是你的工程包含文件中没有这个头文件,这种错正常人不会犯,那第二种就是传说中的,“明明包含目录中添加了这个文件,就是一直提示无法打开它!哭晕在厕所!” 其实这个错犯的,唉和...
  • sac761
  • sac761
  • 2017年04月11日 09:38
  • 3735

编译错误 无法打开包括文件:“SDKDDKVer.h”: No such file or directory

在这里我要给那些前辈说下,你们转了帖子就转了,能不能把解决的过程也发下,给个一两句话,又没有实际的操作过程,让很多的新人都很误导,我就是其中之一。原因还是那个原因,由于vs2012和2010的目录问题...
  • sanzhixiong86
  • sanzhixiong86
  • 2017年09月08日 15:47
  • 137

VC|targetver.h(8): fatal error C1083: 无法打开包括文件:“SDKDDKVer.h”: No such file or directory

简单的办法: 解决方案:项目--右键--属性--配置属性--常规--平台工具集--选择Visual Studio 2013 -WindowsXP(v120_xp) https://zhidao.bai...
  • cocoasprite
  • cocoasprite
  • 2017年03月24日 22:52
  • 2599

【vs】fatal error C1083: 无法打开包括文件: “SDKDDKVer.h”: No such file or directory

安装了vs2010,vs2013后,使用vs2013编译vs2010的工程,总出现烦人的错误: fatal error C1083: 无法打开包括文件: “SDKDDKVer.h”: No ...
  • Qyee16
  • Qyee16
  • 2016年03月24日 19:30
  • 2575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:无法打开包括文件:“SDKDDKVer.h”: No such file or directory
举报原因:
原因补充:

(最多只允许输入30个字)