用g ++编译c ++ 14-code
我在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.4
你需要在以后的版本中使用-std=c++1y
,看起来像从5.2
开始,你可以使用-std=c++14
。
如果我们看一下gcc的在线文档,我们可以find每个版本的gcc的手册,我们可以通过在GCC 4.9.3手册下select4.9.3的Dialect选项来看到它:
'C ++ 1Y'
对ISO C ++标准的下一次修订,暂定于2014年进行。支持是高度实验性的,在将来的版本中几乎肯定会以不兼容的方式发生变化。
所以直到4.9.3
你不得不使用-std=c++1y
而gcc 5.2选项说:
'c ++ 14''c ++ 1y'
2014年的ISO C ++标准加上修正。 名称'c ++ 1y'已被弃用。
我不清楚为什么这是列在Options Controlling C Dialect
但这是目前的文件是如何组织的。
GCC 4.8不支持-std=c++14
标志。 如果要使用C ++ 14function,则需要使用-std=c++1y
编译。 使用godbolt.org看来,支持-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。