为什么某个.cpp文件无法编译?

Why won't a certain .cpp file compile?

本文关键字:编译 文件 cpp 为什么      更新时间:2023-10-16

我徒劳地试图找到解决问题的方法。任何帮助都非常感谢。

不久前,我安装了 Minw,以便在没有 IDE 的情况下开始编码。我正在尝试学习C++和一个我不会编译的文件。该文件是一个.cpp文件,是我正在学习的在线课程的一部分,并在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 %dn", i);
    }
    return 0;
}

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

cpp112.cpp: 在函数 'int main(int, char**)' 中:CPP112.cpp:9:15:错误:"i"未命名类型     for( auto i : ia ) {               ^

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

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

您使用的语法出现在 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