CodeBlocks
即使没有-std=c++11
启用任何选项(我检查了所有设置和项目文件),也会一直给我这个错误。
有没有办法禁用它?
CodeBlocks
即使没有-std=c++11
启用任何选项(我检查了所有设置和项目文件),也会一直给我这个错误。
有没有办法禁用它?
这是我最好的猜测。您用于构建项目的编译器是 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++ 编译器的命令行选项有疑问,请说出它是什么编译器以及什么版本。