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下面都有红线
可以看出有少输入";"号的...
缺少类型说明符 - 假定为 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? 这不是一个程序,您可以通过省略不必要的public
s 来提高代码的可读性: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...