【问题标题】:Why won't a certain .cpp file compile?为什么某个 .cpp 文件无法编译?
【发布时间】:2016-05-24 07:03:40
【问题描述】:

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

我不久前安装了 Mingw,试图在没有 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 %d\n", i);
    }
    return 0;
}

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

cpp112.cpp:在函数'int main(int,char**)'中: cpp112.cpp:9:15:错误:'i' 没有命名类型 对于(汽车我:我){ ^

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

再次感谢您的帮助。我没有想法。

【问题讨论】:

  • 尝试将-std=c++11 添加到您的编译器标志中。
  • 这个问题写得很好。它有一个最小的完整示例来说明问题以及与之相关的明确错误消息。任何人都可以轻松地看到 OP 所面临的问题。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-06-07
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多