需要在Codeblocks中启用C++11

13

我需要在Codeblocks 16中启用C++11。

许多教程都解释说,只需在“设置>编译器... >编译器设置>编译器标志”中选择“Have g++ follow the C++11 ISO C++ language standard -std=c++11”选项,但是我在编译器标志中没有看到这样的选项:

enter image description here

其他人建议只需将-std=c++11粘贴到“其他编译器选项”中。然而,这无法让我构建我的代码,并在“Build Messages”栏中显示以下内容:

enter image description here

我正在使用安装在Windows 7上的Codeblocks 16和GNU GCC编译器。


6
你的g++版本是多少?-std=c++0x标志是为了在标准化之前支持C++11。 - NathanOliver
1
半开玩笑地说:使用CMake,set(CMAKE_CXX_STANDARD 11),并通过-G "CodeBlock - Ninja"-G "CodeBlocks - Unix Makefiles"生成您的CodeBlocks项目文件。;-) - DevSolar
2
默认情况下,Codeblocks使用旧版本的MinGW GCC。您应该使用最新版本更新您的工具链。 - πάντα ῥεῖ
1
@πάνταῥεῖ:这不是真的,CodeBlocks附带了一个最新的MinGW,因此自多个版本以来支持-std=c++11 - mcserep
5
问题可能出在OP的安装上。CodeBlocks 12已经内置了足够新的GCC版本来支持“-std=c++11”标志。我猜测OP下载了没有GCC的CodeBlocks安装程序,并且正在使用一个非常旧的分开安装的版本,而这个版本被CodeBlocks在路径中找到了。 - mcserep
显示剩余6条评论
4个回答

10

您总是可以选择 -std=c++0x 选项, 但另一种解决方案是安装更新的mingw版本,因为问题显然是编译器而不是Code::Blocks。


3
这就是 Code::Blocks 16.1 版本与最新的 GCC (TDM-GCC 4.9.2) 包含版本应该具备的外观。

enter image description here

您可以使用以下命令检查GCC版本
gcc --version

gcc.exe位于./CodeBlocks/MinGW/bin下

从CodeBlock官网下载时,请确保下载codeblocks-16.01mingw-setup.exe


1
问题出在您的编译器上,您可以 在这里 下载最新的MinGW。
下载后,您就可以从编译器标志中选择C++11标准。

-1

进入设置 -> 编译器 -> 进入GNU GCC模式 -> 编译器设置 -> 编译器标志 -> 勾选“使用g++遵循c++ 11 ISO C++语言标准”

就这样 查看这个有用的YouTube链接


如果GCC版本不支持“-std=c++0x”,那么“-std=c++11”也无法使用。 - HolyBlackCat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接