Visual Studio 2017更新后出现自动生成的C++控制台程序无法找到iostream头文件而且无法编译问题的解决
1.首先看一下问题:(学习的过程中不断在更新解决该问题的方法,第4步从根本解决了问题)
2.该问题出现在我们选择的编译环境,vs2017之前版本(2018年10月之前使用的版本)都是默认编译环境为x86,而之后突然将以前的预编译头文件改为"pch.h",看着不爽,感觉不如以前的"stdafx.h"。因此只需要修改编译环境为x64即可。但是还是需要在x86下编译的话解决方法请看3.
3.在x86下编译通过的解决方法是:修改项目属性添加包含目录和库目录:
进入项目属性设置
点击C++目录,编辑包含目录,可能出问题的vs里的包含目录不对(我的另一台有问题的电脑上的vs包含的目录和这个不一样),因此我就索性将下面没问题的包含目录复制后粘贴在有问题的VS的包含目录里,但是不要删除以前原有的。要复制的内容为
$(WindowsSdkDir)include
$(FrameworkSDKDir)\include
$(VC_IncludePath)
$(WindowsSDK_IncludePath)
像这样一项一项地添加进去。
添加库目录同样的方法,下面只给出添加项。由于时间久了我忘记当初添加的是哪些项,所以全部给出:
$(WindowsSdkDir)lib
$(FrameworkSDKDir)\lib
$(VC_LibraryPath_x86)
$(WindowsSDK_LibraryPath_x86)
$(NETFXKitsDir)Lib\um\x86
由于我也是VS的初学者,并没有完全搞清楚VS的功能和配置,所以这么做可能不一定所以的机器都适用,但是我的机器是用这种简单粗暴的方式搞定的。
4.很重要很重要:
安装完opencv的朋友呢可能都会出现这样的问题,因为引入了opencv库后可能opencv的那些东西都变成了继承项,但是又不知道该如何删除他,从而导致目前这种最简单的程序都无法编译通过的现象。下面给出删除继承值的方法(更新于2019年4月7日):
如下图所示,我也是在一个博文里看到的
然后给出博文的链接:
http://www.cppblog.com/jack-wang/archive/2014/03/03/206023.html
当然了,我在上面说的那个方法也实用用,但是没有解决根本问题,经过上面的步骤后我们需要在Include中间添加以下两个东西:包含了一下内容后vs就可以找得到我们常用的头文件了
$(VC_IncludePath)
$(WindowsSDK_IncludePath)
在LIB中间添加一下内容:
$(VC_LibraryPath_x86)
$(WindowsSDK_LibraryPath_x86)
然后保存退出,编译程序就可以通过了。