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並編譯工程就可以正常編譯鏈接了。

發佈了38 篇原創文章 · 獲贊 157 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章