Visual Studio 2017更新后C++控制台程序无法找到iostream头文件,自动生成的最简单程序无法编译通过

Visual Studio 2017更新后出现自动生成的C++控制台程序无法找到iostream头文件而且无法编译问题的解决

问题:

(学习的过程中不断在更新解决该问题的方法,第3种方法从根本解决了问题)
如上图所示,自动生成的控制台程序会报错。
Visual Studio 2017更新后C++控制台程序无法找到iostream头文件,自动生成的最简单程序无法编译通过_第1张图片

方法1:

该问题出现在我们选择的编译环境,vs2017之前版本(2018年10月之前使用的版本)都是默认编译环境为x86,而之后突然将以前的预编译头文件改为"pch.h",看着不爽,感觉不如以前的"stdafx.h"。因此只需要修改编译环境为x64即可。但是还是需要在x86下编译的话解决方法请看3.

以上陈述不准确,会出现这种问题是因为可能导入了什么库后无法删除,导致其他项目会默认使用其他库,但实际我们又不需要,而又无法删除。

Visual Studio 2017更新后C++控制台程序无法找到iostream头文件,自动生成的最简单程序无法编译通过_第2张图片

方法2:

在x86下编译通过的解决方法是:修改项目属性添加包含目录和库目录:
进入项目属性设置
Visual Studio 2017更新后C++控制台程序无法找到iostream头文件,自动生成的最简单程序无法编译通过_第3张图片
点击C++目录,编辑包含目录,可能出问题的vs里的包含目录不对(我的另一台有问题的电脑上的vs包含的目录和这个不一样),因此我就索性将下面没问题的包含目录复制后粘贴在有问题的VS的包含目录里,但是不要删除以前原有的。要复制的内容为:
$(WindowsSdkDir)include
$(FrameworkSDKDir)\include
$(VC_IncludePath)
$(WindowsSDK_IncludePath)
Visual Studio 2017更新后C++控制台程序无法找到iostream头文件,自动生成的最简单程序无法编译通过_第4张图片
Visual Studio 2017更新后C++控制台程序无法找到iostream头文件,自动生成的最简单程序无法编译通过_第5张图片像这样一项一项地添加进去。
添加库目录同样的方法,下面只给出添加项。由于时间久了我忘记当初添加的是哪些项,所以全部给出:
$(WindowsSdkDir)lib
$(FrameworkSDKDir)\lib
$(VC_LibraryPath_x86)
$(WindowsSDK_LibraryPath_x86)
$(NETFXKitsDir)Lib\um\x86

由于我也是VS的初学者,并没有完全搞清楚VS的功能和配置,所以这么做可能不一定所以的机器都适用,但是我的机器是用这种简单粗暴的方式搞定的。

方法3

很重要很重要:
安装过opencv的朋友,后来又不用opencv了,可能会出现这样的问题,因为引入了opencv库后可能opencv的那些东西都变成了继承项,但是又不知道该如何删除他,从而导致目前这种最简单的程序都无法编译通过的现象。下面给出删除继承值的方法(更新于2019年4月7日):
如下图所示,我也是在一个博文里看到的
Visual Studio 2017更新后C++控制台程序无法找到iostream头文件,自动生成的最简单程序无法编译通过_第6张图片
然后给出博文的链接:
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)
然后保存退出,编译程序就可以通过了。

你可能感兴趣的:(VS使用)