VS 编译 MFC 应用可能会遇到的环境变量错误
先贴上可能出现的错误信息:
- “winsdkver.h”: No such file or directory
- “SDKDDKVer.h”: No such file or directory
- (留空待补充)
问题分析:
- SDK文件缺失
- 多SDK共存
- VS多版本共存导致环境变量出问题
- 目标平台指向错误
- (留空待补充)
下面说一下简单的解决方法:
1、首先是最简单的一键解决方案——“重定项目目标”
(貌似只有 VS2015 和 VS2017 上才有的功能)
选择好对应的 SDK 版本并确定,该操作可以解决 80% 的问题。
2、如果经过上一步骤仍提示有 “winsdkver.h”: No such file or directory 请进入解决方案的属性页面
此时属性页面上的 “Windows SDK 版本” 和 “平台工具集” 会是与你之前选择的 SDK 版本所对应。
将这两项对应的值更改为 “从父级或目录默认设置继承” 并点击确定,然后重新编译。
这时候会出现新的 error
“error MSB8020: 无法找到 Visual Studio 2010 的生成工具(平台工具集 =“v100”)。若要使用 v100 生成工具进行生成,请安装 Visual Studio 2010 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标”。”
然后根据 error 的提示再次进入 “重定项目目标” 可以发现此时的选项比最开始多出一个
将对应选项分别选择最高的(或对应的),然后确定。再重新编译即可排除 error。
3、如果脸黑还是同样的 error 报错呢?、
那只有两种强制解决思路,1:手动修改 SDK 环境路径;2:删去多余的 SDK 环境
针对第一种方法有多种解决办法
这里给出参考的链接:
lpx15312——无法打开包括文件:“SDKDDKVer.h”: No such file or directory
hhh1108——VS2013 C++ error C1083: 无法打开源文件: “SDKDDKVer.h”, "stdio.h", "tchar.h"