解决VS2015安装后stdio.h ucrtd.lib等文件无法识别问题,即include+lib环境变量配置
今天突然想在windows上装个 VS2015 玩玩,结果遇到了如下bug:
安装完 VS2015 后,直接新建项目->win32控制台->运行,结果报错!
”无法打开包括文件: “stdio.h”: No such file or directory”
”lnk1104:无法打开文件
ucrtd.lib ”
奇了怪了,stdio.h 和 ucrtd.lib 都是 VS 自带的头文件和库文件,都无法识别,所以第一反应就是这个头文件和库文件的目录没有正确的导入,即include 和 lib的环境变量出了问题。
这个问题网上有几个解决方法,但是本人试过大部分的解决方案都不好用,而且都是针对当前项目单独设置的(我可不想每次新建一个项目就得重新配一下环境,太麻烦了。。。),所以这里直接提供一个全局的解决方法:
1.首先打开VS2015,新建一个项目,我这里新建的项目名称为”201604172330_helloworld”(名称随意),然后点击菜单栏”视图”->”其他窗口”->”属性管理器”,从而调出属性管理器页面。
2.我的”属性管理器”页面是在
VS2015 窗口的右侧,然后在项目名称”201604172330_helloworld”下找到”Debug
| Win32”文件夹,双击”Microsoft.Cpp.Win32.user”。
3.在弹出的属性页中,点击左侧的”VC++
目录”,分别选择”包含目录” 和 “库目录” 右侧的下拉箭头,然后点击”编辑” ,从而修改环境变量。
4.对于include环境变量的编辑,首先取消勾选”从父级或项目默认设置继承”,
然后在最上方添加红框中的5条路径,点击确定。
5.对于lib环境变量的编辑,保留勾选”从父级或项目默认设置继承”,
然后在最上方添加红框中的1条路径,点击确定。
6.至此完成环境变量的重配工作,重新编译运行就正常了。
对于为什么之前的环境变量无法应用,网上普遍反映是VS2015中的一个Bug,而且我发现如果是选择”从父级或项目默认设置继承”时,在Windows
Kits\10\include 和 Windows Kits\10\lib 目录下导入的是10.0.10240.0文件夹,但是我的本机目录下是10.0.10150.0文件夹,这是不一致的,这有可能导致了环境变量的配置错误,所以以上这种手工的配置方法是没问题的。