错误:C++98模式中不允许基于范围的“for”循环

wko9yo5t  于 2022-12-05  发布在  其他
关注(0)|答案(9)|浏览(417)

因此,我正在遵循本页上的教程:http://www.cplusplus.com/doc/tutorial/control/但是我在执行range/based for循环时遇到了问题。我找到了这个页面:GNU GCC compiler updating这里的答案是我应该打开“项目”和“属性”。但是当我尝试这样做时,“属性”选项是灰色的,没有任何解释:http://imageshack.com/a/img571/4371/xd1x.png那么..如何激活range/based for循环?

bvk5enib

bvk5enib1#

-std=c++11标志传递给编译器。当然愚者应该足够新鲜(〉=4.7)以支持所有这些现代标准。对于CodeBlocks 13.12:设置-〉编译器-〉选项卡“编译器标志”-〉选项“让g遵循C11 ISO C++ [-std=c++11]”

qnzebej0

qnzebej02#

上面给出的使用-std=c++11的解决方案对我不起作用。
这是我的编译器的目标和版本详细信息。
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) Target: x86_64-linux-gnu
当我尝试的时候,就是这样的结果。
$ g++ -std=c++11 program.cpp cc1plus: error: unrecognized command line option ‘-std=c++11’
这为我解决了问题。
$ g++ -std=c++0x program.cpp

oug3syen

oug3syen3#

Dev-Cpp 5.11中,只需单击工具编译器选项设置代码生成〉(以及最后一个选项)**语言标准(-std)**从下拉列表中选择(ISO C++ 11)。

4nkexdtk

4nkexdtk4#

如果您在Code::Blocks中遇到此错误,这可能会帮助您-
单击设置-〉编译器-〉编译器设置-〉编译器标志
在“常规”部分下,勾选[]旁边的框:让g遵循C11 ISO C++ 标准[-std=c++11]

iecba09b

iecba09b5#

这两种情况:

g++ -std=c++11 -o test_executable test_source.cpp
g++ -std=c++0x -o program program.cpp

对我有用。
编译后要做的唯一事情是将test_executable(在第一种情况下)作为./test_executables执行,或者将程序(在第二种情况下)作为./program执行。

fiei3ece

fiei3ece6#

使用上面的解决方案g++ -std=c++0x program.cpp是可行的。但是,需要稍微修改命令,以便使用通用命令运行程序:./program
我用的是g++ -std=c++0x -o program program.cpp,一切都很完美。

wlwcrazw

wlwcrazw7#

如果您正在使用QT5.5,则可以通过在.pro文件中添加以下行来实现。
CONFIG += c++11

ojsjcaue

ojsjcaue8#

最好的解决方案是在Dev C中这样做:
1.转到“工具”选项
1.选择“编译器选项”
1.点击“设置”
1.单击“代码生成”
1.转到“选择语言”并选择“ISO C
11”
那么您的问题就解决了。

wb1gzix0

wb1gzix09#

第一次,如果您有Dev-C++ C:\Program Files (x86)\Dev-Cpp\MinGW64\bin,必须将此路由添加到路径,然后使用cmd中的下一个命令。
g++ -std=c++11 -o outprogram code_source.cpp
此命令。

相关问题