c++ - 为什么某个 .cpp 文件不能编译?

标签 c++ c++11 compiler-errors g++ mingw

我试图找到解决问题的方法,但没有成功。非常感谢任何帮助。

我不久前安装了 Mingw,以便在没有 IDE 的情况下开始编码。我正在尝试学习 C++ 和一个我不会编译的文件。该文件是一个 .cpp 文件,它是我正在参加的在线类(class)的一部分,并在 Visual Studio 2015 中成功编译,但没有使用我在 cmd 中用于编译的标准 g++ 命令。

代码如下:

#include <cstdio>
using namespace std;

int main( int argc, char ** argv )
{
    int ia[] = { 1, 2, 3, 4, 5 };
    for( auto i : ia ) {
        printf("i is %d\n", i);
    }
    return 0;
}

当我尝试编译时,命令提示符返回以下内容:

cpp112.cpp: In function 'int main(int, char**)':
cpp112.cpp:9:15: error: 'i' does not name a type
     for( auto i : ia ) {
               ^

我认为可能是我的编译器过时了,但是当我打开 MinGW 安装界面时没有显示更新。

再次感谢您的帮助。我没主意了。

最佳答案

您使用的语法出现在 C++ 11 标准中,因此您应该确保两件事:您的 g++ 编译器版本支持它(所有现代编译器都支持)并且您已指定应使用 C++ 11 标准。例如

g++ cpp122.cpp -std=c++11

您也可以尝试 -std=c++14 以获得 C++ 14 功能。

对于 6.1 版之前的 g++,默认模式是 -std=gnu++98。自 6.1 起,默认模式为 -std=gnu++14

关于c++ - 为什么某个 .cpp 文件不能编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406528/

相关文章:

c++ - 调用错误和崩溃的纯虚方法

C++98 诉 C++11 std::set::insert 规范

c++ - 访问调用函数的局部变量

android - 如何在 Android 中使用 std::stoul 和 std::stoull?

java - 单击按钮时如何在Java中的运行时强制转换对象

c - 对 `roundf' 的 undefined reference - C 语言

c++ - 指向函数和派生类的指针

c++ - C++中的因变量?

c++ - 如何在动态矩阵中创建主键

javascript - Typescript 内部模块 - 无法在同一模块中引用导出的类