GCC 最初代表 GNU C Compiler,但随着支持语言的增多,其含义变为 GNU Compiler Collection。下表概述了其标志性版本的发布时间和主要特性。
| 主要版本 | 发布日期 | 主要特性和里程碑意义 |
|---|---|---|
| GCC 1.0 | 1987-03-22 | 初始版本,由理查德·斯托曼(Richard Stallman)编写,仅支持C语言。 |
| GCC 2.0 | 1992-02- | 开始支持C++。 |
| GCC 2.95 | 1999-07-31 | 一个非常经典、稳定的版本,在很长一段时间内是许多Unix系统的标配。 |
| GCC 3.0 | 2001-06-18 | 引入IA-64(Itanium) 架构支持。改进C++标准兼容性。 |
| GCC 3.1 | 2002-05-15 | 引入对 Java(GCJ) 和 .NET(CIL) 的初步支持。 |
| GCC 4.0 | 2005-04-20 | 重写了优化和中间表示架构,引入了 Tree SSA,带来了显著的优化能力提升。 |
| GCC 4.1 | 2006-02-28 | 引入了自动向量化器,优化更加成熟。 |
| GCC 4.2 | 2007-05-13 | 提供对 C++98 的基本完整支持。 |
| GCC 4.3 | 2008-03-05 | 开始实验性支持 C++0x(后来的C++11) 的早期特性(如 auto、nullptr)。 |
| GCC 4.4 | 2009-04-21 | 引入了 Graphite 框架,用于高级循环优化。 |
| GCC 4.5 | 2010-04-14 | 改进链接时优化(LTO)的支持。 |
| GCC 4.6 | 2011-03-25 | 引入了 -std=c++0x 选项,提供了大部分C++11特性的初步支持。 |
| GCC 4.7 | 2012-03-22 | 第一个完全支持C++11的GCC版本(除了<thread>等少量库特性)。 |
| GCC 4.8 | 2013-03-22 | 第一个完整支持C++11(包括所有标准库特性)的版本。同时开始支持C++11的正则表达式。成为许多Linux发行版(如RHEL 7/CentOS 7)的默认编译器,影响深远。 |
| GCC 4.9 | 2014-04-22 | 大幅改进对 C++14 的支持,并引入了 OpenMP 4.0 的支持(包括卸载到加速器)。 |
| GCC 5.1 | 2015-04-22 | 默认标准改为 C++14。几乎完全支持C++14。引入了新的libstdc++ ABI(_GLIBCXX_USE_CXX11_ABI),更好地兼容C++11标准。 |
| GCC 6.1 | 2016-04-27 | 默认标准改为 C++14。基本完全支持C++17(当时还叫C++1z)的绝大多数特性。改进了对 C++ Concepts 的实验性支持。 |
| GCC 7.1 | 2017-05-02 | 默认标准改为 C++14。提供了对 C++17 的完整支持。引入了 AddressSanitizer 对内存泄漏的检测。 |
| GCC 8.1 | 2018-05-02 | 默认标准升级为 C++14。改进了性能、诊断信息(错误提示更友好)。开始实验性支持 C++2a(后来的C++20) 特性(如 Concepts)。 |
| GCC 9.1 | 2019-05-03 | 默认标准改为 C++14。继续完善 C++2a 支持,并引入了对 D语言 的初步支持。 |
| GCC 10.1 | 2020-05-07 | 默认标准升级为 C++14。完全支持C++2a(即C++20) 的核心语言特性(库特性尚未完全)。引入了 静态分析器(-fanalyzer),可以在编译时发现一系列潜在bug。 |
| GCC 11.1 | 2021-04-27 | 默认标准改为 C++17。完整支持C++17,并大幅完善了 C++20 的库支持。改进了对 C++23 的实验性支持。 |
| GCC 12.1 | 2022-05-06 | 默认标准改为 C++17。基本完全支持C++20 和 C++23 的许多新特性。显著改进了 AMD Zen 架构的优化。 |
| GCC 13.1 | 2023-04-26 | 默认标准改为 C++17。近乎完全支持C++20,并提供了大量 C++23 特性。改进了对 RISC-V 架构的支持。 |
| GCC 14.1 | 预计 2024年 | (开发中) 将继续推进对 C++23 的完全支持,并开始实验性引入 C++26 的特性。 |
总结与关键里程碑
-
C++98 支持:GCC 3.0 开始努力,GCC 4.2 左右基本完备。
-
C++11 支持:
-
GCC 4.3 - 4.6:实验性/部分支持。
-
GCC 4.7:核心语言基本支持。
-
GCC 4.8:第一个完全支持C++11(核心语言+标准库)的版本,这是一个极其重要的里程碑。
-
-
C++14 支持:
-
GCC 4.9:大部分支持。
-
GCC 5.1:完全支持C++14。
-
-
C++17 支持:
-
GCC 6.1 - 7.1:逐步完善。
-
GCC 7.1:完全支持C++17。
-
-
C++20 支持:
-
GCC 8 - 10:逐步引入和完善。
-
GCC 10.1:核心语言基本完备。
-
GCC 11.1 - 12.1:标准库支持趋于完善。
-
-
默认标准变更:
-
GCC 5.x 之前:默认
-std=gnu++98 -
GCC 6.x - 10.x:默认
-std=gnu++14 -
GCC 11.x - 至今:默认
-std=gnu++17
-

被折叠的 条评论
为什么被折叠?



