cc1plus:错误:使用g ++无法识别的命令行选项“-std = c ++ 11”

时间:2013-02-03 16:25:39

标签: c++ c++11 compiler-errors g++ std

我正在尝试使用g++以及-std=c++11c++0x标记进行编译。

但是,我收到此错误

cc1plus: error: unrecognized command line option "-std=c++11"

g ++ --version

g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

4 个答案:

答案 0 :(得分:99)

从您的G ++版本看,您需要更新它。 C ++ 11仅在G ++ 4.3之后才可用。最新版本是4.7。

在pre-G ++ 4.7版本中,您必须使用-std=c++0x,对于更新版本,您可以使用-std=c++11

答案 1 :(得分:13)

引用gcc website

  

C ++ 11特性作为GCC Subversion存储库主干和GCC 4.3及更高版本中的“主线”GCC编译器的一部分提供。要启用C ++ 0x支持,请将命令行参数-std = c ++ 0x添加到g ++命令行。或者,要在C ++ 0x扩展之外启用GNU扩展,请将-std = gnu ++ 0x添加到g ++命令行。 GCC 4.7及更高版本支持-std = c ++ 11和-std = gnu ++ 11。

所以可能你使用的是不支持-std=c++11的g ++版本。请改为-std=c++0x

C ++ 11功能的可用性仅适用于版本> = 4.3。

答案 2 :(得分:3)

你应该试试这个

g++-4.4 -std=c++0x or g++-4.7 -std=c++0x

答案 3 :(得分:-3)

我也遇到了同样的错误,使用-D标志进行编译修复它,试试这个:

g ++ -Dstd = c ++ 11