无法识别的命令行选项'-std = c ++ 11'

时间:2013-07-11 01:15:55

标签: c++ c++11 compiler-errors codeblocks

即使没有启用CodeBlocks选项,

-std=c++11也一直给我这个错误(我检查了所有设置和项目文件)。

有没有办法禁用它?

1 个答案:

答案 0 :(得分:5)

这是我最好的猜测。您用于构建项目的编译器 是gcc。您在全局设置中设置了-std=c++11 对于这个编译器,但安装的gcc版本太旧了 认识到这个选择。

要在Code :: Blocks IDE中进行检查:

  • 导航设置 - >编译器

  • 从标有所选编译器的下拉菜单中,选择 GNU GCC编译器

  • 在下面的标签面板上,选择编译器设置 - >编译器标志

  • 从标有“类别”的下拉菜单中,选择 <All categories>

  • 查看编译器选项的复选框列表,直至看到:

  

让g ++遵循C ++ 11 ISO C ++语言标准[-std = c ++ 11]

  • 如果选中该复选框,则可能是您的问题。取消选中它,单击“确定”, 然后尝试重建你的项目。

如果这样可以解决问题,您应该考虑将gcc升级到版本(&gt; = 4.7) 支持-std=c++11选项,因为您将支持C ++ 最新C ++标准的语言和库功能。

如果您不能这样做,您可能会发现-std=c++0x选项是可以接受的 你的编译器。如果可行,它将为某些临时提供支持 在编译器发布时可用的C ++ 11标准版本。

不太可能出现的情况是您正在使用的编译器 构建项目不是gcc而是其他一些非命令行兼容的 通过复制GCC的全局编译器而不是你在Code :: Blocks中设置的编译器 配置,其中设置了-std-c++11选项。在那种情况下,你只是 必须确保没有为此编译器配置全局选项 它不承认。

如果您对命令行选项有疑问,以备将来参考 一个c ++编译器,比如它是什么编译器,以及版本。