C++ 编译c++;14带有g+的代码+;

C++ 编译c++;14带有g+的代码+;,c++,g++,ubuntu-14.04,c++14,C++,G++,Ubuntu 14.04,C++14,我在Ubuntu 14.04 LTS上使用g++4.8.4。尝试使用'-std=c++14'进行编译时,出现以下错误: g++: error unrecognized command line option '-std=c++14' 使用'-std=c++11'进行编译效果很好,所以我不确定发生了什么。g++真的不支持c++14吗?我是否使用了错误的命令行选项 我使用了“sudo apt get install g++”,它会自动检索最新版本,对吗?GCC 4.8不支持-std=c++14标志

我在Ubuntu 14.04 LTS上使用g++4.8.4。尝试使用'-std=c++14'进行编译时,出现以下错误:

g++: error unrecognized command line option '-std=c++14'
使用'-std=c++11'进行编译效果很好,所以我不确定发生了什么。g++真的不支持c++14吗?我是否使用了错误的命令行选项


我使用了“sudo apt get install g++”,它会自动检索最新版本,对吗?

GCC 4.8不支持
-std=c++14
标志。如果要使用C++14功能,则需要使用
-std=C++1y
进行编译。使用它看来,最早支持
-std=c++14
的版本是GCC 4.9.0或Clang 3.5.0

G++确实通过
-std=c++14
-std=c++1y
支持c++14。后者是该标准的通用名称,直到人们知道它将在哪一年发布。在旧版本(包括您的)中,只接受后者,因为这些版本的发布年份尚不清楚

我使用了“sudo apt get install g++”,它会自动检索最新版本,对吗

它安装Ubuntu存储库中可用的最新版本,而不是现有的最新版本


最新的GCC版本是5.2。

对于
GCC 4.8.4
您需要在更高版本中使用
-std=c++1y
,看起来像是从
5.2
开始,您可以使用
-std=c++14

如果我们查看gcc,我们可以找到每个gcc版本的手册,我们可以在下面看到,它说:

“c++1y”

<>修订后的ISO C++标准,暂定为2014。支持是高度实验性的,在未来的版本中几乎肯定会以不兼容的方式进行更改

因此,在
4.9.3
之前,您必须使用
-std=c++1y
,而

“c++14” “c++1y”

2014个ISO C++标准加修订。已弃用名称“c++1y”


我不清楚为什么会在控制C方言的
选项下列出,但这就是文档当前的组织方式。

按照中的说明在Ubuntu 14.04上设置所需的gcc版本-gcc 5或gcc 6。说明包括配置
更新备选方案
以允许您根据需要在不同版本之间切换。

您需要使用
-std=c++1y
它更改为
-std=c++14
我认为对于5.2,您最好将编译器升级到4.9或5。
我使用了“sudo apt get install g++”它应该自动检索最新版本,这是正确的吗?< /代码>它安装了Ubuntu/Debian存储库选择的最重要的点发布版本,它被认为是默认的、不合格的版本。通常有多个软件包可用于不同的版本,包括较新的主要版本-在这种情况下,我们必须明确指定我们想要一个非默认的主要版本,例如,
sudo aptitude install g++-6
,就像我最近在Debian上所做的那样。刚才名为
g++
的包中的默认版本是5.x版。请注意,在GCC4.8中,这只增加了对正常函数返回类型推断的支持。许多其他功能直到4.9或5版才添加,如前所述。(请注意,任何可能想评论“用代码回答而不是链接”的人:application2000是我的工作,不是我的,所以我不能说这是我的答案。但我可以告诉人们在哪里可以得到比我费力回答的5个单独的堆栈溢出问题更有用的说明。)