VS2012找不到SDKDDKVer.h的Bug修复

    机器同时安装了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并编译工程就可以正常编译链接了。

你可能感兴趣的:(VS2012找不到SDKDDKVer.h的Bug修复)