C++VS2010编译器问题,在程序正确时出现如下,连cout,cin都用不了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++VS2010编译器问题,在程序正确时出现如下,连cout,cin都用不了相关的知识,希望对你有一定的参考价值。

1>------ 已启动生成: 项目: ceshi, 配置: Debug Win32 ------
1>生成启动时间为 2011/10/31 23:28:55。
1>PrepareForBuild:
1> 正在创建目录“f:\360data\重要数据\我的文档\visual studio 2010\Projects\ceshi\Debug\”。
1>ClCompile:
1> ceshi.cpp
1>f:\新建文件夹 (1)\vc\include\iostream(25): error C2146: 语法错误: 缺少“;”(在标识符“__PURE_APPDOMAIN_GLOBAL”的前面)
1>f:\新建文件夹 (1)\vc\include\iostream(25): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\新建文件夹 (1)\vc\include\iostream(25): error C2144: 语法错误:“int”的前面应有“;”
1>f:\新建文件夹 (1)\vc\include\iostream(25): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
等等
以前运行过正确的程序都运行不了,cout,cin,endl下面都有红线

参考技术A error C2146: 语法错误: 缺少“;”(在标识符“__PURE_APPDOMAIN_GLOBAL”的前面)
可以看出有少输入";"号的...

缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
可以看出,有变量没有定义类型......

error C2144: 语法错误:“int”的前面应有“;”
可以看出,可能"int xxx"的上行结尾有个";"没输入
参考技术B 在“工具栏”恢复设置即可。本回答被提问者采纳 参考技术C 加上using namespace std;
并且不要用#include <iostream.h>
参考技术D 加上
#incude<iostream>
using namespace std;追问

以前运行过正确的程序都运行不了,cout,cin,endl下面都有红线

追答

原来的能运行的程序是在那个版本上运行了,如果原来可以运行,在VC2010上运行不了那就跟用到宏定义或环境设置有关了!

追问

那该如何设置,我记得没动过设置啊

追答

那要看你的代码了,在Vistual 6.0中编译的程序移植到高版本时部分函数使用的也会有问题,你查看下一编译的错误,根据错误的位置修改一下就可以了!

第5个回答  2011-11-02 ebqDDA

使用继承构造函数时出现 VS2015 内部编译器错误

【中文标题】使用继承构造函数时出现 VS2015 内部编译器错误【英文标题】:VS2015 Internal Compiler Error when using inheriting constructors 【发布时间】:2015-07-25 20:59:05 【问题描述】:

这是一个 10 行 C++11 程序,从我正在开发的程序中大大简化:

template <typename T> class Base  public:
    template <typename S> Base(S x) 
;
template <typename T> class Child : public Base<T>  public:
    using Base<T>::Base;
;
template <> class Child<int> : public Base<int>  public:
    using Base<int>::Base;
;

int main()

    Child<int> child(8.0f);

MSVC 2015 输出:

1>------ Build started: Project: MyProject, Configuration: Debug Win32 ------
1>  filename.cpp
1>path\to\filename(10): fatal error C1001: An internal error has occurred in the compiler.
1>  (compiler file 'msc1.cpp', line 1393)
1>   To work around this problem, try simplifying or changing the program near the locations listed above.
1>  Please choose the Technical Support command on the Visual C++
1>   Help menu, or open the Technical Support help file for more information

注意MSVC 2015 支持继承构造函数is new with that version。

我已经为此提交了一份错误报告,因为至少编译器不应该崩溃。但是,我可以确认这是正确的 C++ 用法/解决方法吗?

错误报告here

【问题讨论】:

@DavidHaim:这是一个继承构造函数声明。 您对MSCV还有什么期望?解决方法:改用合适的编译器,例如 clang。 什么是“MSCV”,@Walter? 这不是一个程序,您可以通过省略不必要的publics 来提高代码的可读性:coliru.stacked-crooked.com/a/164072087e303251 更进一步,我实际上建议将其稍长一些但间距更好:@ 987654324@ 只是一个想法。 @imallett 我认为您的连接错误报告需要更多详细信息。您至少应该提供错误消息(就像您在这里一样),而不仅仅是 smartass cmets。 【参考方案1】:

正如 cmets 中提到的,这似乎是一个 MSVC 问题。用 Clang 和 -std=c++11 快速编译,没有问题。

【讨论】:

@Creris:你错过了重点。它可能在 C++ 中格式不正确在编译器中触发 ICE。 OP正在询问是否是这种情况(不是)。 @LightnessRacesinOrbit 仍然存在 MVSC 问题,尽管程序不正确或不正确,它们不应导致内部错误 @Creris:是的,我们都知道。这不是这个问题的目的。 OP 只是询问程序是否格式错误。就是这样。 这是一件可怕的事情。在其他编译器中检查它并不能证明任何事情。只有标准报价才能真正证明它是正确的。此外,MSVC ICE 意味着这里显然存在 一些 MSVC 问题,但这不会使代码正确或不正确。 ICE 始终是编译器错误。如果 C++ 格式不正确,它应该触发编译错误或警告,而不是 ICE。在连接时提交错误。在命令 ilne 中,一定要运行 cl -Bv 以获取确切的版本号

以上是关于C++VS2010编译器问题,在程序正确时出现如下,连cout,cin都用不了的主要内容,如果未能解决你的问题,请参考以下文章

用vs2010编译fortran程序时出现rc.exe not found

重装VS2010时出现未能正确加载 "radlangsvc.package,radlangsvc.vs...

关于在vs2010中编译Qt项目时出现“无法解析的外部命令”的错误

VS2010 打开时出现未知错误

新安装的vs2013运行时出现找不到.dll文件。

在 Windows 中编译 Qt 时出现致命错误