【问题标题】:unrecognized command line option '-std=c++11'无法识别的命令行选项'-std=c++11'
【发布时间】:2013-07-11 01:15:54
【问题描述】:

CodeBlocks 一直给我这个错误,即使没有启用-std=c++11 选项(我检查了所有设置和项目文件)。

有没有办法禁用它?

【问题讨论】:

  • 我尝试启用该功能,但由于某种原因仍在调用“-std=c++11”。

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


【解决方案1】:

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

要在 Code::Blocks IDE 中检查这一点:

  • 导航设置 -> 编译器

  • 从标记为 Selected compiler 的下拉菜单中,选择 GNU GCC 编译器

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

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

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

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

  • 如果选中该复选框,那么这可能是您的问题。取消勾选,点击确定, 然后尝试重建您的项目。

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

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

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

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

【讨论】:

  • 在你回答之前我发现了问题,但问题是在全局设置中检查了它。无论如何,我仍然需要检查我的编译器版本。
  • 这是 MinGW 4.6.2。是旧的吗?
  • @MonetR.Adams 是的,这对于 -std-c++11 来说太旧了(你需要 >= 4.7),但它会接受 -std=c++0x
猜你喜欢
  • 2016-06-19
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 2015-02-05
  • 2012-09-04
  • 2017-04-09
  • 2015-11-12
  • 2016-08-09
相关资源
最近更新 更多