【发布时间】:2013-07-11 01:15:54
【问题描述】:
CodeBlocks 一直给我这个错误,即使没有启用-std=c++11 选项(我检查了所有设置和项目文件)。
有没有办法禁用它?
【问题讨论】:
-
我尝试启用该功能,但由于某种原因仍在调用“-std=c++11”。
标签: c++ c++11 compiler-errors codeblocks
CodeBlocks 一直给我这个错误,即使没有启用-std=c++11 选项(我检查了所有设置和项目文件)。
有没有办法禁用它?
【问题讨论】:
标签: c++ c++11 compiler-errors codeblocks
这是我最好的猜测。您用于构建项目的编译器
是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++ 编译器,说明它是什么编译器,什么版本。
【讨论】:
-std-c++11 来说太旧了(你需要 >= 4.7),但它会接受 -std=c++0x。