如何在我的g ++编译器中满足C ++标准版本?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在我的g ++编译器中满足C ++标准版本?相关的知识,希望对你有一定的参考价值。
我知道C ++有标准而不是版本,因此,他们的版本由规范管理(如C99,C ++ 11,其他)
C ++编译器有版本,每个版本都可以支持多个c ++标准......这是对的吗?
关于上面,我找到了我的g ++版本编译器,它是7.2.0
λ bgarcial [~] → g++ --version
g++ (Ubuntu 7.2.0-8ubuntu3) 7.2.0
Copyright (C) 2017 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.
λ bgarcial [~] →
我有我的g ++编译器的以下目录,我使用本机makefile来构建C ++语言
λ bgarcial [include/c++/7] → pwd
/usr/include/c++/7
λ bgarcial [include/c++/7] →
如何确定g ++编译器支持哪些C ++标准?
g++ documentation包括以下信息:
GCC支持1998年发布的原始ISO C ++标准,以及2011年和2014年的修订版。如果没有给出C ++语言方言选项,则默认为-std = gnu ++ 14。
它还包含这个有趣的内容:
默认情况下,GCC还为C ++语言提供了一些额外的扩展,这些扩展在极少数情况下与C ++标准冲突。请参阅选项控制C ++方言。使用上面列出的-std选项会禁用这些扩展,因为它们与所选的C ++标准版本冲突。
您也可以使用-std = gnu ++ 98(对于带有GNU扩展的C ++ 98)或-std = gnu ++ 11(对于带有GNU扩展的C ++ 11)显式选择C ++语言的扩展版本,或-std = gnu ++ 14(对于带有GNU扩展的C ++ 14),或-std = gnu ++ 1z(对于带有GNU扩展的C ++ 1z)。
在给定的C ++项目中,如何指定要使用的C ++标准/规范类型?
在CMakeLists.txt中可能是?要么 ...
作为标志建立一些基本文件?如下:
g++ client.cpp main.cpp -o client.out -lzmq -std=gnu++11
什么是推荐的C ++标准/规范。
我问这个是因为在第一个实例中我假设我使用的是带有GNU扩展的C ++ 14,与前面引用的g ++编译器文档有关。在某些情况下,我没有使用某些函数或库,但我不知道这是否是由于使用的标准或其他原因。
建议使用的C ++标准是什么?如何配置项目以使用它?
您可以使用-std开关指定标准
$ g ++ -std = c ++ 11 your_file.cpp -o your_program
以上是关于如何在我的g ++编译器中满足C ++标准版本?的主要内容,如果未能解决你的问题,请参考以下文章
MinGW:如何在 Windows 上将 GCC/G++ 升级到版本 5?