cc1plus:错误:无法识别的命令行选项“-std = c ++ 11”与g ++
我正在尝试使用g++
和-std=c++11
或c++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