自从安装了vs2012老是提示#include<iostream>无法打开iostream,2010就没这个问题,这是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自从安装了vs2012老是提示#include<iostream>无法打开iostream,2010就没这个问题,这是怎么回事相关的知识,希望对你有一定的参考价值。

那我还能再安vs2010吗,他们可以兼容吗

您好,您是在windows XP下面编写C++源程序嘛,下面我引用一般文章看能不能解决您的问题。
我们最近发布了Visual Studio(以下简称“VS”) 2012的产品线和所支持的平台,其中提到,我们正在评估加入一个选项,让C++开发者在VS 2012中生成的应用程序可以在XP上运行,而不用去安装VS 2010。现在我跟大家介绍下详细情况。

背景:VS 2012所带的C++运行时和程序库使用了一些Windows Vista以及以上版本的系统特有的API,这导致使用VS 2012中的C++编译器生成的应用程序不能在Windows XP上运行。Windows XP应用程序的开发者可以使用VS中针对C++程序的“多目标”功能,这样就可以在VS 2012开发环境中调用VS 2010的编译器。“多目标”功能允许开发者使用新版本IDE的新功能,而不必升级项目文件;也可以让VS 2012使用VS 2010中的编译器,从而使生成的应用程序可以在XP上运行。
评估多目标功能:VS 2012 Beta版本提供了使用和评估C++多目标功能的机会,部分Windows XP应用程序的开发者也使用过它。从在线反馈来看,客户希望做到下面两点,从而让VS 2012更好得满足Windows XP应用程序开发者的需求:
1、使用同一套编译器和工具链生成支持Windows XP以及更高版本的应用程序,而不是使用(不同编译器和工具链)为XP和Vista或以上版本分别构建应用程序。
2使用同一份代码(允许使用C++11新功能)生成支持Windows XP以及更高版本的应用程序。

为了更好地满足客户关于支持XP平台的需求,我们决定增强多目标功能,以便直接使用VS2012的C++编译器和程序库,就可以生成支持Window XP的应用程序。

增强多目标功能 今年秋季,微软将会提供一个VS 2012的更新,让C++应用程序支持Windows XP平台。这个更新会修改VS 2012中的编译器、运行时以及程序库,使得开发者可以创建支持XP或更高版本系统的程序,同时也支持Windows Server 2003以及更高版本。我们最近宣布的VS 2012桌面版也会包含这个更新。

Steve Teixeira
Director of Program Management
Visual C++追问

感谢您的回答,可是我就是用的win7啊

参考技术A 我以前遇到过这种问题,好像是不同版本装的话会有问题,具体是什么我给忘记了,不知道是高版本的会覆盖低版本的,还是低版本的会冲掉高版本的。然后我问老师,老师让我卸掉一个去,但是这种东西卸不干净,最后还是要重装系统。你实在不行也重装系统吧!追问

可是我是在新的系统下装了也还是这样的问题,可是2010就可以啊。这是为什么呢,求解

追答

我觉得如果你只安装一个vs2012,那就应该没有问题了!

参考技术B 这个有可能是两个VS版本不能同时安装导致的!你安装VS2012时候有没有提示什么异常?你提供的信息不足以分析问题,欢迎你补充。追问

好像没什么异常的,而且我在两个系统都装过的,其中一个是新安装的系统,可是都是这种问题,可为什么2010的九可以正常运行呢

参考技术C 我觉得是不能兼容吧。
导致vs2012安装不完整。
解决问题有2
1.补充并完善在vs2012的安装路径
2.重新安装vs2010
参考技术D 你再装一个10版吧,可以。

VS2013编程C++ 调试和生成老是出现问题,求救~~~

代码没有问题,windows8.1 6位4系统,F5出现第一个图(过期),之后出现第二个图(无法启动),新手求救TAT,急,在线等

首先在Visual Studio里如果编译没过,那么这个提示就是正常的。
因为此项目已经过期表示你改了某些文件或项目配置或者上次没有编译成功,需要重新编译,否则调试会出错。
如果你上次编译通过了,按F5调试还是出现此提示,那可能就有问题了。
如果每次都出现这样的问题,那么这个解决方案很适合你。
当然解决方案不是选择“不要再显示此对话框”,这个只是不显示,但是每次调试还会先编译一次再启动。
我们要的是不要再编译了,直接启动调试吧。
首先此提示表示visual studio发现某些文件已经过期了,但是在编译的时候没有发现有文件被编译,连输出文件都没有重新生成。这不坑我吗。
好吧,其实它就是坑我的,这是Visual studio的bug。在Visual studio 2005上一般没有此问题,但是在Visual studio 2010上会出现此问题,其他版本暂时不清楚。
虽然是bug,但是也是可以解决的。
这个bug的原因是Visual studio 2010认为项目中的被删除的文件是过期的,比如项目中的某个头文件,这个头文件已经被删除,Visual studio 2010找不到这个头文件,就认为它是过期的,所以每次调试VS都认为项目是过期的,需要先编译。
那为什么编译时没有发现有文件被编译呢,原因是这个头文件没有被任何CPP或C文件使用,所以编译时没有发现有文件需要重新编译。
Bug的原理明白了,解决方案就是在VS项目中删除那个头文件。
一种笨方法就是在VS里一个个头文件点击打开,找到不能打开的。
一种聪明的方法是写脚本解析工程文件,然后验证文件是否存在。
还有一种方法是通过DebugView来查看。
下面介绍一个这种方案。
1. 打开devenv.exe.config文件(此文件在%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\ 或者 %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\里)
2. 在</configuration>这行前面添加
<system.diagnostics>
<switches>
<add name=”CPS” value=”4″ />
</switches>
</system.diagnostics>
3. 重新启动Visual Studio
4. 打开DbgView(下载地址:http://technet.microsoft.com/en-us/sysinternals/bb896647), 勾选:菜单-》Capture-》Capture Win32 和 菜单-》Capture-》Capture Events
5. 点击F5开始调试,出现提示“此项目已经过期”时停止
6. 在DbgView按ctrl+F窗口查找“not up to date”,查找到如:
[120] Project ‘D:\cache\test1\test1.vcxproj’ not up to date because build input ‘D:\CACHE\TEST1\FUN1.H’ is missing.
7. 此时就找到了关键文件FUN1.H,只要在工程中移除这个文件再编译一次就可以了。追问

大神看不懂哎……能不能QQ上告诉我一下,麻烦了 414931437

参考技术A 看下你项目中个项目文件(.h .cpp)的最后修改时间是否有不正常的。
检查下目录e:\Users\ConsoleApplication3\Debug追问

项目文件里找不到.cpp貌似根本没有生成,大神可否QQ联系下教我……414931437,因为我们上课用的VC6.0……

追答

你把项目文件发上来我看一下?

追问

#include

using namespace std;

int main()

cout << "Hello,world!" << endl;
return0;

这个吗……
大神QQ上说吧……因为我VS不会用基本上……

本回答被提问者采纳

以上是关于自从安装了vs2012老是提示#include<iostream>无法打开iostream,2010就没这个问题,这是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

安装VS运行后老是提示应用程序出错!请高手帮忙~~~~

VS2013安装老是失败

VS2010调试C的代码老是提示此项目过期

如何解决在Win7中运行VS2012时的兼容性问题

VS2013编程C++ 调试和生成老是出现问题,求救~~~

VS2012编译已有WDM驱动