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