G++ 版本和标准选项
G++ version and std option
我看到我的一个makefile,并看到以下命令。
g++-5 -std=c++11
据我了解,std 选项代表了这一点——
GCC 支持不同的C++方言,对应于多个已发布的 ISO 标准。可以使用 -std= 命令行选项选择它实现的标准。
g++ 命令中的 -5 表示什么?
-5
是实际 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++标准的支持,请参阅 https://gcc.gnu.org/projects/cxx-status.html。 例如,一些 C++17 语言功能仅在 GCC 5.1 中引入。
g
++ 旁边的参数 -n 表示 GNU C++ 您想要编译代码的编译器版本
5几乎
肯定意味着GCC的版本,在这种情况下是5.something。
拥有这样的名称可以更轻松地在同一系统上混合不同的版本。
您可以通过运行来确认这一点
g++ --version
你应该得到类似的东西
g++ (GCC( 5.2.0
您对 -std 选项的看法是正确的。除了已发布的版本外,通常还支持即将发布的版本。您可以在此处找到支持的摘要,并在此处找到计划于 C++20 年推出的功能-std=c++2a
等选项。
相关文章:
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- Win32编译器选项和内存分配
- 使用CMake检测支持的C++标准
- 如何理解C++标准N3337中的expr.const.cast子句8
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 编译标准库类型
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- C/C++预处理器是否可以检测一些编译器选项
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- 通过选项卡的文本设置QTabWidget顺序
- 铸造标准::有没有回到原来的类型
- 通过ccmake在cmake中缓存依赖选项
- 在C++标准中,语法选项的表示中没有隐含的排序,这种说法正确吗
- G++ 版本和标准选项
- 什么是提升等价于标准::可选空选项
- 是否有一组标准编译器选项
- 如何从标准输入读取输入,直到按下空格或选项卡
- 控制台键盘按检测库或标准选项