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

我正在尝试使用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. 

从你的G ++版本看,你需要更新它。 C ++ 11自G ++ 4.3以来才可用。 最新的版本是4.7。

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

从海湾合作委员会网站引用:

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

所以可能你使用不支持-std=c++11的g ++版本。 尝试-std=c++0x代替。

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

你应该试试这个

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

我也有同样的错误,编译与-D标志固定它,试试这个:

g ++ -Dstd = c ++ 11