大家好,欢迎来到IT知识分享网。
目录
GCC(GNU Compiler Collection)的版本和发布年份信息如下:
GCC盘点
| 1.0 | 1987 |
| 1.1 | 1988 |
| 1.2 | 1988 |
| 1.3 | 1989 |
| 1.4 | 1989 |
| 1.5 | 1990 |
| 2.0 | 1992 |
| 2.1 | 1992 |
| 2.2 | 1992 |
| 2.3 | 1993 |
| 2.4 | 1994 |
| 2.5 | 1993 |
| 2.6 | 1994 |
| 2.7 | 1995 |
| 2.8 | 1997 |
| 2.9 | 1998 |
| 3.0 | 2001 |
| 3.1 | 2002 |
| 3.2 | 2002 |
| 3.3 | 2003 |
| 3.4 | 2004 |
| 4.0 | 2005 |
| 4.1 | 2006 |
| 4.2 | 2007 |
| 4.3 | 2008 |
| 4.4 | 2009 |
| 4.5 | 2010 |
| 4.6 | 2011 |
| 4.7 | 2012 |
| 4.8 | 2013 |
| 4.9 | 2014 |
| 5.0 | 2015 |
| 6.0 | 2016 |
| 7.0 | 2017 |
| 8.0 | 2018 |
| 9.0 | 2019 |
| 10.0 | 2020 |
| 11.0 | 2021 |
| 12.0 | 2022 |
| 13.0 | 2023 |
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 等主流发行版采用,增加了其普及度。
这些版本被广泛使用的原因通常包括:
- 稳定性:在发布后经过多次修复和更新,变得非常稳定。
- 新特性支持:支持新的编程语言标准(如 C++11、C++14、C++17 和 C++20),吸引了希望使用新特性的开发者。
- 优化性能:引入了许多新的优化技术,提高了编译和运行时性能。
- 广泛采纳:被主流 Linux 发行版采纳和默认使用,推动了其普及。
- 兼容性:支持多种架构和平台,适应广泛的开发需求。
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 的情况:
- 纯C语言项目:如果你的项目是用C语言编写的,使用
gcc更加合适,因为它是GNU编译器集合中专门为编译C语言代码设计的编译器。 - C文件:当你编译的源文件是
.c文件时,使用gcc是标准做法。 - 混合语言项目:在需要混合编译C和其他语言(如汇编语言)时,可以通过
gcc进行适当的调用和链接。
使用 g++ 的情况:
- C++语言项目:如果你的项目是用C++语言编写的,使用
g++更为适合,因为它是GNU编译器集合中专门为编译C++语言代码设计的编译器。 - C++文件:当你编译的源文件是
.cpp、.cxx、.cc等文件时,使用g++是标准做法。 - 标准库链接:
g++会自动链接C++标准库(如libstdc++),而gcc不会。如果你使用gcc来编译C++代码,需要手动链接C++标准库,通常这不是最佳实践。 - 模板和C++特性:C++代码中的模板和其他特定特性需要
g++才能正确处理。使用gcc可能会遇到编译错误或链接问题。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/116793.html