C++ G++;版本和标准选项

C++ G++;版本和标准选项,c++,C++,我看到一个makefile,并看到下面的命令 g++-5 -std=c++11 据我所知,std选项代表以下内容- GCC支持不同的C++语言,对应于多个ISO标准。可以使用-std=命令行选项选择它实现的标准 g++命令中的-5表示什么?几乎可以肯定,5表示GCC的版本,在本例中是5 使用这样的名称可以更容易地在同一系统上混合不同的版本 您可以通过运行 g++ --version 你应该得到这样的东西 g++(GCC)5.2.0 关于-std选项,您是正确的。除了已发布的版本外,通常还

我看到一个makefile,并看到下面的命令

g++-5 -std=c++11 
据我所知,std选项代表以下内容-

<> GCC支持不同的C++语言,对应于多个ISO标准。可以使用-std=命令行选项选择它实现的标准


g++命令中的-5表示什么?

几乎可以肯定,5表示GCC的版本,在本例中是5

使用这样的名称可以更容易地在同一系统上混合不同的版本

您可以通过运行

g++ --version
你应该得到这样的东西

g++(GCC)5.2.0


关于-std选项,您是正确的。除了已发布的版本外,通常还支持即将发布的版本。你可以找到一个支持和选项的概要,如“代码> -STD= C++ 2A<代码>,用于C++ 20的特性。

< P>参数-n旁边的G+表示GNU C++编译器版本,你想用

< P >编译代码> <代码> -5 < /Cord>是实际G++可执行文件的名称的一部分。确切的名称选择基本上取决于操作系统或发行版的维护人员。以这种方式命名可执行文件允许并行安装多个GCC版本,这一特性通常很有用,例如,如果您希望向各种用户提供软件,并希望确保不同的编译器版本可以处理您的代码。例如,在我当前看到的一个(稍微旧一点的)盒子上

$ ls -l /usr/bin/g++*
lrwxrwxrwx 1 root root      7 Apr  8  2014 /usr/bin/g++ -> g++-4.8
-rwxr-xr-x 1 root root 259176 Mar 20  2014 /usr/bin/g++-4.4
-rwxr-xr-x 1 root root 775888 May  7  2016 /usr/bin/g++-4.8
$ /usr/bin/g++-4.4 --version
g++-4.4 (Ubuntu/Linaro 4.4.7-8ubuntu1) 4.4.7
Copyright (C) 2010 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.

$ /usr/bin/g++-4.8 --version
g++-4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
Copyright (C) 2013 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.

不同的编译器版本不仅对C++标准特性有不同的支持,而且它们也可能有不同的缺陷或怪癖。

关于GCC支持不同版本的C++标准,请参见。例如,一些C++17语言特性仅在GCC 5.1中引入