C++ 编译c++;14带有g+的代码+;
我在Ubuntu 14.04 LTS上使用g++4.8.4。尝试使用'-std=c++14'进行编译时,出现以下错误: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标志
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.0G++确实通过-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个单独的堆栈溢出问题更有用的说明。)