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

avatar
作者
猴君
阅读量:0

目录

GCC盘点

GCC 4.0

GCC 4.1

GCC 4.2

GCC 4.3

GCC 4.4

GCC 4.5

GCC 4.6

GCC 4.7

GCC 4.8

GCC 4.9

GCC 5.0

GCC 6.0

GCC 7.0

GCC 8.0

GCC 9.0

GCC 10.0

GCC 11.0

GCC 12.0

GCC 13.0

GCC稳定版本

GCC 4.8

GCC 4.9

GCC 5.0

GCC 6.0

GCC 7.0

GCC 8.0

GCC 9.0

GCC 10.0

G++盘点

1. G++ 1.x 系列

2. G++ 2.x 系列

3. G++ 3.x 系列

4. G++ 4.x 系列

5. G++ 5.x 系列

6. G++ 6.x 系列

7. G++ 7.x 系列

8. G++ 8.x 系列

9. G++ 9.x 系列

10. G++ 10.x 系列

11. G++ 11.x 系列

12. G++ 12.x 系列

13. G++ 13.x 系列

GCC

概述

特点

G++

概述

特点

区别


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

GCC盘点

1.01987
1.11988
1.21988
1.31989
1.41989
1.51990
2.01992
2.11992
2.21992
2.31993
2.41994
2.51993
2.61994
2.71995
2.81997
2.91998
3.02001
3.12002
3.22002
3.32003
3.42004
4.02005
4.12006
4.22007
4.32008
4.42009
4.52010
4.62011
4.72012
4.82013
4.92014
5.02015
6.02016
7.02017
8.02018
9.02019
10.02020
11.02021
12.02022
13.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 可能会遇到编译错误或链接问题。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!