VS2012找不到SDKDDKVer.h的Bug修复

本文详细解释了在Visual Studio 2012环境中,由于Windows SDK路径宏定义与Visual Studio 2010存在冲突,导致编译器无法找到SDKDDKVer.h文件的问题,并提供了通过修改props配置文件来解决问题的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    机器同时安装了Visual Studio 2012和低版本(如VS2010),运行一段时间后会出现一个bug。新建或旧的Win32/MFC工程在编译时,编译器提示:fatal error C1083: 无法打开包括文件:“SDKDDKVer.h”: No such file or directory

    原因:出现这个bug的原因是VS2012中关于Windows SDK的路径宏定义和VS2010不同,而在某种情况下VS2010的配置串扰到了VS2012。VS2010中定义包含目录的宏为$(WindowsSdkDir)include,指向的目录是C:\Program Files (x86)\Windows Kits\8.0\Include。而搜索到SDKDDKVer.h文件在C:\Program Files(x86)\Windows Kits\8.0\Include\shared路径下。所以这里应更正为使用VS2012中新的宏定义$(WindowsSDK_IncludePath)。该宏包括了三个路径:

    C:\Program Files (x86)\Windows Kits\8.0\Include\um

    C:\Program Files (x86)\Windows Kits\8.0\Include\shared

    C:\Program Files (x86)\Windows Kits\8.0\Include\winrt

    类似还需要更改的是关于库目录的宏定义,VS2010下的$(WindowsSdkDir)lib指向为C:\Program Files (x86)\Windows Kits\8.0\Lib,需要更改为

    C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86

    那如何更改VS2012的配置环境,使得这个宏生效呢?


    解决方法:修改Visual Studio 2012的props配置文件。用记事本打开C:\Users\<me>\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props,然后在<IncludePath>字段中添加$(WindowsSDK_IncludePath);再在<LibraryPath>字段中添加$(WindowsSDK_LibraryPath_x86);并保存。再去启动VS2012并编译工程就可以正常编译链接了。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值