0


Linux GCC & G++:各个版本发行年份及新增特性盘点

GCC(GNU Compiler Collection)的版本和发布年份信息如下:

GCC盘点

1.019871.119881.219881.319891.419891.519902.019922.119922.219922.319932.419942.519932.619942.719952.819972.919983.020013.120023.220023.320033.420044.020054.120064.220074.320084.420094.520104.620114.720124.820134.920145.020156.020167.020178.020189.0201910.0202011.0202112.0202213.02023

GCC 4.0

发布年份:2005

  • 优化:引入新的优化框架,包括 SSA (Static Single Assignment) 和新的优化器。
  • 前端:改进了 C++ 和 Fortran 前端的支持。
  • 目标平台:新增对 x86-64 和其他架构的支持。

GCC 4.1

发布年份:2006

  • 优化:增强了自动矢量化 (auto-vectorization) 支持。
  • 警告:改进了警告和错误信息,使其更清晰。
  • C++ 支持:引入了对部分 C++0x 特性的实验性支持。

GCC 4.2

发布年份:2007

  • 并行编程:支持 OpenMP 2.5 标准,增强多线程支持。
  • 警告:增加了更多的警告选项和更好的诊断信息。
  • 语言支持:改进了对 C99 和 C++ 标准的支持。

GCC 4.3

发布年份:2008

  • 优化:新增 IPA (Inter-Procedural Analysis) 优化技术。
  • 警告:新增 -Wconversion 和 -Wstrict-overflow 警告。
  • 语言支持:增强了对 Fortran 2003 的支持。

GCC 4.4

发布年份:2009

  • 优化:改进了 LTO (Link-Time Optimization) 支持。
  • 语言支持:新增对 C++0x 和 Fortran 2008 特性的支持。
  • 目标平台:改进了对 ARM 和 x86-64 平台的支持。

GCC 4.5

发布年份:2010

  • 优化:进一步改进了 LTO 和并行编译支持。
  • 诊断信息:改进了错误和警告信息的可读性。
  • 插件:引入插件机制,允许开发者扩展编译器功能。

GCC 4.6

发布年份:2011

  • 优化:改进了自动矢量化和优化器的性能。
  • 语言支持:增强了对 C++11 标准的支持。
  • 目标平台:新增对多种嵌入式平台的支持。

GCC 4.7

发布年份:2012

  • 优化:引入了更多的高层次优化。
  • 语言支持:全面支持 C++11 标准,改进了 Fortran 2003 和 2008 支持。
  • 目标平台:增强了对 ARM 和 PowerPC 平台的支持。

GCC 4.8

发布年份:2013

  • 优化:引入了新的优化技术,如 GIMPLE SSA。
  • 警告:改进了警告机制,新增了一些新的警告选项。
  • 语言支持:进一步增强了 C++11 支持,新增部分 C++14 特性。

GCC 4.9

发布年份:2014

  • 优化:改进了自动矢量化和并行编译技术。
  • 语言支持:引入了更多的 C++14 特性,改进了 Fortran 和 Go 语言支持。
  • 目标平台:增强了对多种嵌入式平台和架构的支持。

GCC 5.0

发布年份:2015

  • 版本编号:从 5.0 开始,版本编号策略发生了变化。
  • 语言支持:全面支持 C++14,开始支持 C++17 的部分特性。
  • 目标平台:增强了对 ARM、AArch64 和其他嵌入式平台的支持。

GCC 6.0

发布年份:2016

  • 优化:引入更多的高层次优化技术,改进 LTO。
  • 语言支持:增加对 C++17 的部分支持,改进 Fortran 2003 和 2008 的支持。
  • 诊断信息:进一步改进了错误和警告信息的可读性。

GCC 7.0

发布年份:2017

  • 优化:改进了自动矢量化和并行编译支持。
  • 语言支持:增加对 C++17 的全面支持。
  • 目标平台:增强了对多种架构和嵌入式平台的支持。

GCC 8.0

发布年份:2018

  • 优化:引入更多的优化技术,如改进的 IPA 和 GIMPLE 优化。
  • 语言支持:进一步增强了对 C++17 和 C++20 的部分特性支持。
  • 诊断信息:改进了错误和警告信息,使其更详细。

GCC 9.0

发布年份:2019

  • 优化:改进了 LTO 和自动矢量化支持。
  • 语言支持:增强了对 C++20 特性的支持。
  • 目标平台:进一步增强了对 ARM 和 RISC-V 平台的支持。

GCC 10.0

发布年份:2020

  • 优化:进一步改进了高层次优化和并行编译技术。
  • 语言支持:引入了更多的 C++20 特性,改进了 Fortran 和 Go 语言支持。
  • 诊断信息:进一步改进了错误和警告信息的可读性。

GCC 11.0

发布年份:2021

  • 优化:引入更多的自动矢量化和并行编译技术。
  • 语言支持:增强了对 C++20 的全面支持。
  • 目标平台:进一步增强了对多种嵌入式平台和架构的支持。

GCC 12.0

发布年份:2022

  • 优化:改进了 LTO 和其他高层次优化技术。
  • 语言支持:引入了部分 C++23 特性,改进了 Fortran 和 Go 语言支持。
  • 目标平台:增强了对 ARM、RISC-V 和其他平台的支持。

GCC 13.0

发布年份:2023

  • 优化:引入了更多的优化技术,如改进的 GIMPLE 和 SSA 优化。
  • 语言支持:进一步增强了对 C++23 和 C++26 的部分特性支持。
  • 诊断信息:改进了错误和警告信息,使其更详细和可读。

这些改动和新增功能展示了 GCC 的持续发展和改进,为开发者提供了更强大的编译器工具链,支持更多的编程语言特性和优化技术。

GCC稳定版本

GCC 4.8

发布时间:2013

  • 稳定性:经过多年的更新和修复,该版本被认为非常稳定。
  • 广泛支持:支持多种架构,包括 x86、ARM 和 PowerPC。
  • C++11 支持:全面支持 C++11 标准,许多项目在这一时期转向使用 C++11。
  • 广泛采用:许多 Linux 发行版如 Ubuntu 14.04 LTS 默认使用这个版本,增加了其普及度。

GCC 4.9

发布时间:2014

  • 优化改进:改进了自动矢量化和并行编译技术。
  • C++14 支持:引入了对部分 C++14 特性的支持,增强了对现代 C++ 特性的兼容性。
  • Fortran 和 Go 改进:提高了对 Fortran 和 Go 编程语言的支持。
  • Linux 发行版采用:被许多主流 Linux 发行版如 Debian 8 和 Ubuntu 15.04 采用,进一步推广了该版本的使用。

GCC 5.0

发布时间:2015

  • 重大改进:包括新版本编号策略和多个新特性。
  • C++14 和 C++17 支持:全面支持 C++14,并开始支持 C++17 的部分特性。
  • 广泛支持:被许多开发者和项目采用,特别是在需要现代 C++ 特性时。
  • Linux 发行版采用:被广泛应用于多个 Linux 发行版如 Fedora 22 和 Ubuntu 15.10,推动了其普及。

GCC 6.0

发布时间:2016

  • 优化改进:引入更多高层次优化技术,改进 LTO。
  • C++17 支持:增加了对 C++17 的部分支持,吸引了希望使用最新 C++ 特性的开发者。
  • 广泛采用:被许多 Linux 发行版如 Debian 9 和 Ubuntu 16.04 LTS 采用,增加了其用户基础。

GCC 7.0

发布时间:2017

  • 全面支持 C++17:完整支持 C++17 标准,为使用最新 C++ 特性的项目提供支持。
  • 优化改进:改进了自动矢量化和并行编译技术,提升了编译性能。
  • 目标平台:增强了对多种架构和嵌入式平台的支持。
  • 广泛采用:被 Fedora 26 和 Ubuntu 17.04 等发行版采用,增加了其普及度。

GCC 8.0

发布时间:2018

  • 优化改进:引入更多的优化技术,如改进的 GIMPLE SSA。
  • C++20 支持:开始支持 C++20 的部分特性,吸引了希望使用最新标准的开发者。
  • 广泛采用:被 Debian 10 和 Ubuntu 18.04 LTS 等主流发行版采用,推动了其广泛使用。

GCC 9.0

发布时间:2019

  • 优化和 LTO 改进:进一步改进了 LTO 和自动矢量化支持。
  • C++20 支持:增加了对 C++20 特性的支持,吸引了现代 C++ 项目。
  • 广泛采用:被 Fedora 30 和 Ubuntu 19.04 等发行版采用,提升了其用户基础。

GCC 10.0

发布时间:2020

  • 全面支持 C++20:为 C++20 标准提供全面支持。
  • 优化技术:引入了更多的高层次优化和并行编译技术。
  • 广泛采用:被 Debian 11 和 Ubuntu 20.04 LTS 等主流发行版采用,增加了其普及度。

这些版本被广泛使用的原因通常包括:

  1. 稳定性:在发布后经过多次修复和更新,变得非常稳定。
  2. 新特性支持:支持新的编程语言标准(如 C++11、C++14、C++17 和 C++20),吸引了希望使用新特性的开发者。
  3. 优化性能:引入了许多新的优化技术,提高了编译和运行时性能。
  4. 广泛采纳:被主流 Linux 发行版采纳和默认使用,推动了其普及。
  5. 兼容性:支持多种架构和平台,适应广泛的开发需求。

G++盘点

1. G++ 1.x 系列

  • G++ 1.0 (1987 年 3 月)- 特点:首个 G++ 版本,支持基本的 C++ 语言功能。

2. G++ 2.x 系列

  • G++ 2.0 (1992 年)- 特点:大幅提升了 C++ 的标准支持,开始支持 C++98 标准的一些特性。
  • G++ 2.95 (1999 年 7 月)- 特点:引入了对 ISO C++ 标准(C++98)的初步支持,并改进了模板的处理。

3. G++ 3.x 系列

  • G++ 3.0 (2001 年 6 月)- 特点:改进了优化器,支持更多的 ISO C++ 标准特性。
  • G++ 3.4 (2004 年 4 月)- 特点:更好地支持了模板元编程,提高了编译器的性能和稳定性。

4. G++ 4.x 系列

  • G++ 4.0 (2005 年 4 月)- 特点:引入了新的优化框架 Tree-SSA,改进了编译器的优化能力。
  • G++ 4.7 (2012 年 3 月)- 特点:开始部分支持 C++11 标准,如 lambda 表达式和基于范围的 for 循环。
  • G++ 4.8 (2013 年 3 月)- 特点:大幅度支持 C++11 标准,大部分新特性都得到了实现。

5. G++ 5.x 系列

  • G++ 5.1 (2015 年 4 月)- 特点:开始部分支持 C++14 标准,改进了诊断信息和错误消息。
  • G++ 5.3 (2015 年 12 月)- 特点:更全面地支持 C++14 标准,提升了编译器的稳定性和性能。

6. G++ 6.x 系列

  • G++ 6.1 (2016 年 4 月)- 特点:开始部分支持 C++17 标准,引入了许多新的编译器警告和优化。
  • G++ 6.3 (2016 年 12 月)- 特点:改进了对 C++17 特性的支持,修复了许多错误。

7. G++ 7.x 系列

  • G++ 7.1 (2017 年 5 月)- 特点:更好地支持了 C++17 标准,引入了更多的优化选项和警告。
  • G++ 7.3 (2018 年 1 月)- 特点:进一步改进了对 C++17 的支持,提升了编译器的性能和稳定性。

8. G++ 8.x 系列

  • G++ 8.1 (2018 年 5 月)- 特点:全面支持 C++17 标准,开始实验性支持 C++20 特性。
  • G++ 8.3 (2019 年 2 月)- 特点:修复了许多错误,进一步改进了对 C++17 和 C++20 特性的支持。

9. G++ 9.x 系列

  • G++ 9.1 (2019 年 5 月)- 特点:继续改进对 C++20 标准的实验性支持,引入了更多的优化和警告。
  • G++ 9.3 (2020 年 3 月)- 特点:修复了多个问题,增强了编译器的稳定性。

10. G++ 10.x 系列

  • G++ 10.1 (2020 年 5 月)- 特点:更好地支持 C++20 标准,增强了优化选项和警告信息。
  • G++ 10.2 (2020 年 7 月)- 特点:改进了稳定性,修复了多个错误,进一步优化了性能。

11. G++ 11.x 系列

  • G++ 11.1 (2021 年 4 月)- 特点:全面支持 C++20 标准,引入了对部分 C++23 特性的实验性支持。
  • G++ 11.2 (2021 年 7 月)- 特点:修复了许多问题,进一步增强了编译器的稳定性和性能。

12. G++ 12.x 系列

  • G++ 12.1 (2022 年 5 月)- 特点:开始实验性支持 C++23 特性,增强了警告和诊断信息。
  • G++ 12.2 (2022 年 8 月)- 特点:进一步优化了性能,修复了多个错误,增强了对 C++23 的实验性支持。

13. G++ 13.x 系列

  • G++ 13.1 (2023 年 5 月)- 特点:继续增强对 C++23 特性的支持,改进了编译器的优化能力和诊断信息。
  • G++ 13.2 (2023 年 8 月)- 特点:修复了若干错误,进一步提升了编译器的稳定性和性能。

GCC

概述

  • 全称:GNU Compiler Collection
  • 主要功能:GCC 是一个编译器套件,支持多种编程语言,包括 C、C++、Fortran、Ada、Go 等。
  • 命令行工具gcc

特点

  • 多语言支持:不仅支持 C 和 C++,还支持多种其他编程语言。
  • 多平台支持:可用于编译不同架构和操作系统上的程序。
  • 编译器优化:提供多种优化选项,提高生成代码的性能。
  • 诊断和调试:提供丰富的诊断和调试信息。

G++

概述

  • 全称:GNU C++ Compiler
  • 主要功能:G++ 是 GCC 的一个前端,用于编译 C++ 程序。
  • 命令行工具g++

特点

  • C++ 特化:专门针对 C++ 编译进行优化和支持。
  • 自动链接 C++ 库:在编译过程中自动链接 C++ 标准库。
  • C++ 语法和功能支持:全面支持 C++ 标准(如 C++98、C++03、C++11、C++14、C++17、C++20 等)。

区别

  • GCC 是一个多语言编译器套件,支持多种编程语言,包括 C 和 C++。它适用于需要编译不同语言程序的场景。
  • G++ 是专门用于编译 C++ 程序的编译器,自动处理 C++ 相关的编译和链接步骤,简化了 C++ 程序的编译过程。

如何选择二者

使用

gcc

的情况:

  1. 纯C语言项目:如果你的项目是用C语言编写的,使用 gcc 更加合适,因为它是GNU编译器集合中专门为编译C语言代码设计的编译器。
  2. C文件:当你编译的源文件是 .c 文件时,使用 gcc 是标准做法。
  3. 混合语言项目:在需要混合编译C和其他语言(如汇编语言)时,可以通过 gcc 进行适当的调用和链接。

使用

g++

的情况:

  1. C++语言项目:如果你的项目是用C++语言编写的,使用 g++ 更为适合,因为它是GNU编译器集合中专门为编译C++语言代码设计的编译器。
  2. C++文件:当你编译的源文件是 .cpp.cxx.cc 等文件时,使用 g++ 是标准做法。
  3. 标准库链接g++ 会自动链接C++标准库(如 libstdc++),而 gcc 不会。如果你使用 gcc 来编译C++代码,需要手动链接C++标准库,通常这不是最佳实践。
  4. 模板和C++特性:C++代码中的模板和其他特定特性需要 g++ 才能正确处理。使用 gcc 可能会遇到编译错误或链接问题。
标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/weixin_44120785/article/details/139816180
版权归原作者 Thomas_Lbw 所有, 如有侵权,请联系我们删除。

“Linux GCC & G++:各个版本发行年份及新增特性盘点”的评论:

还没有评论