繁体   English   中英

用g ++编译c ++ 14代码

[英]Compile c++14-code with g++

我在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 在线文档,我们可以找到每个版本gcc的手册,我们可以通过GCC 4.9.3手册中的 方言选项4.9.3看到:

'C ++ 1Y'

ISO C ++标准的下一版本,暂定于2014年计划。支持是高度实验性的,并且几乎肯定会在未来版本中以不兼容的方式发生变化。

所以直到4.9.3你必须使用-std=c++1ygcc 5.2选项说:

'c ++ 14''c ++ 1y'

2014年ISO C ++标准加上修正案。 不推荐使用名称“c ++ 1y”。

我不清楚为什么在Options Controlling C Dialect列出了这个,但这就是当前文件的组织方式。

GCC 4.8不支持-std=c++14标志。 如果要使用C ++ 14功能,则需要使用-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。

按照https://gist.github.com/application2000/73fd6f4bf1be6600a2cf9f56315a2d91上的说明在Ubuntu 14.04上设置您需要的gcc版本 - gcc 5或gcc 6。 说明包括配置update-alternatives以允许您根据需要在版本之间切换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM