1

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

有没有办法禁用它?

4

1 回答 1

5

这是我最好的猜测。您用于构建项目的编译器是 gcc。您已为此编译器设置了全局设置,但安装的 gcc 版本太旧而无法识别该-std=c++11选项

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

  • 导航设置 -> 编译器

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

  • 在下面的选项卡面板上,选择Compiler settings -> Compiler flags

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

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

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

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

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

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

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

为了您将来的参考,如果您对 c++ 编译器的命令行选项有疑问,请说出它是什么编译器以及什么版本。

于 2013-07-11T07:27:00.343 回答