无法打开包括文件:“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

相关文章推荐

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

解决方法: 在项目的包含目录里添加: $(WindowsSDK_IncludePath) 在项目的库目录里添加: $(WindowsSDK_LibraryPath_...

VS2012找不到SDKDDKVer.h的Bug修复

Visual Studio 2012找不到SDKDDKVer.h的Bug修复方法,通过手工修改props配置文件完美解决。

解决“不是有效的win32应用程序”问题

解决“不是有效的win32应用程序”问题 帅宏军 用VC2013编译了一个程序,在Windows 8、Windows 7(64位、32位)下都能正常运行。但在...

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

vs2012用着好好的 突然出现了这个问题“无法打开包括文件:“winsdkver.h”: No such file or directory ” 这明明是系统文件,怎么就是不能识别了,于是上网各种...

【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置

目录(?)[-] 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容眼看自己积累到一定的程度了于是决定开始开设这个OpenCV系列专栏总...

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

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

完美解决:VS2015与VS2010同时安装后,头文件无法识别的问题

前言: ------- 本来我用VS2015好好地,后来由于某种原因安装了VS2010。结果用VS2010新建了个工程后出现如下错误: (把这个工程转换到VS2015打开没有任何错误。) ...

Vs3013 SDKDDKVer.h 找不到等错误的解决方案之一

vs2013 无法打开 源 文件 "SDKDDKVer.h" 使用vs2013开发 win32相关的程序的时候,回报很多属性未定义或者文件找不到的错误 例如构建 控制台程序就会报:...

VS2010 这个warning怎么解决?

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(298,5): warning MSB80...

warning MSB8003: Could not find WindowsSDKDir variable from the registry

安装了几天VS都失败了。很郁闷。我安装的是VS
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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