首页 > 解决方案 > Cloud 9编译c++98,需要c++11

问题描述

我正在尝试编译一个使用基于范围的 for 循环的程序,以及仅在 c++11 及更高版本中可用的其他几个功能。当我尝试在终端中使用 makefile 编译程序时,出现以下错误:

error: range-based ‘for’ loops are not allowed in C++98 mode

和一些警告:

warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]

令人讨厌的是,这曾经发生过,但它自己解决了。然而,这一次并没有自行解决。

这是我的生成文件:

main: main.o
    g++5 -std=c++11 -Wall -Werror -g *.cpp -o lab4

以下是我尝试在 makefile 中更改但没有成功的一些示例。

g++-5 -std=c++11 -Wall -Werror -g *.cpp -o lab4
g++5 -std=gnu++11 -Wall -Werror -g *.cpp -o lab4
g++5 -std=c++0x -Wall -Werror -g *.cpp -o lab4
g++ -std=c++11 -Wall -Werror -g *.cpp -o lab4
g++ -std=gnu++11 -Wall -Werror -g *.cpp -o lab4

前面的所有示例都会导致类似的警告和错误。我能做些什么来解决这个问题?

标签: c++terminalcloud9-ide

解决方案


推荐阅读