GCC 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
GCC 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
GCC 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPL
开发语言 C/C++ 查看源码 »
操作系统 Linux
软件类型 开源软件
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-09-13

软件简介

GCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划 的关键部分,亦是自由的 类Unix 及苹果计算机 Mac OS X 操作系统的标准编译器。

GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。

GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada、Go语言前端等,也包括了这些语言的库(如libstdc++,libgcj等。)。 GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由 。

GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC的初衷是为GNU操作系统专门编写一款编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,甚至在微软的Windows上也可以使用GCC。GCC支持多种计算机体系结构芯片,如x86、ARM、MIPS等,并已被移植到其他多种硬件平台。

GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。 

Linux程序员可以根据自己的需要让GCC在编译的任何阶段结束,检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为今后的调试做好准备。与其他常用的编译器一样,GCC也提供了灵活而强大的代码优化功能,利用它可以生成执行效率更高的代码。 

GCC提供了30多条警告信息和3个警告级别,使用它们有助于增强程序的稳定性和可移植性。此外,GCC还对标准的C/C++语言进行了大量的扩展,提高了程序的执行效率,有助于编译器进行代码优化,能够减轻编程的工作量。 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(7) 发布并加入讨论🔥
发表了资讯
07/28 18:14

GCC 13.2 发布

四月份发布的 GCC 13.1 是 GCC 13 系列的第一个稳定版本,它带来了 Modula-2 语言支持、更多 C++23/C23 功能以及从 Arm 到 Intel 的其他新 CPU target 支持。 今天发布的 GCC 13.2 是该系列的第一个点版本更新,包含数十个错误修复。 GCC 13.2 为 GCC 13 分支带来了 58+ 个已知错误修复。该版本没有添加任何主要功能,主要是提供错误修复,而 GCC 14 作为下一个主要编译器功能版本正在开发中,将于明年发布。 发布公告。...

3
2
发表了资讯
07/09 19:12

GCC 10.5 发布

GCC 10.5 已作为 10.x 分支的最终更新版本发布,后续不再对 GCC 10 系列进行进一步更新。 GCC 10.5 版本向后移植了超过 155 个错误修复,没有什么特殊的变更项,它是过去一年中所有向后移植修复的集合。 想要下载 GCC 10.5 编译器源代码的人可以从 gcc.gnu.org 获取。 GCC 13 仍然是目前最新稳定的系列,而 GCC 14 已经进入功能开发阶段,将于 2024 年初推出。...

0
2
发表了资讯
07/03 19:01

GCC 获得对 MIPS16e2 ISA 的支持补丁

开发者 Jie Mei 合并到 GCC Git 的一组补丁显示,正在开发中的 GCC 14 编译器增加了对 MIPS16e2 处理器 ISA 的支持。 MIPS16e2 是 MIPS16e 指令集的扩展,与 MIPS32 和 MIPS64 指令集兼容,可与现有 MIPS 指令二进制文件混合使用。不同的是 MIPS16e2 ASE 添加了 8 个通用寄存器和多个专用寄存器,并定义了新指令,以帮助提高代码密度。 值得一提的是,MIPS16e2 规范起草于 2014 年并于 2016 年正式发布,但直到现在才有开源开发...

1
1
发表了资讯
05/30 07:35

GCC 11.4 发布,修复了 110 多个错误

GCC 11.4 作为修复版本发布了 ,这版本修复了大量社区报告的问题。 GCC 11.3 在一年多之前发布,因此 GCC 11.4 覆盖了 2022 至今的向后移植错误/回归修复内容。修复的问题主要是一些 C 复合体代码的编译时间较长、特定条件下的编译错误问题、一些类型处理错误问题。 整体 Bug 比较琐碎,在此不一一列举,可以在 GCC Bugzilla 中查看所有修复项。 GCC 11.4 可以在 gcc 官网下载。但对于那些想要最新编译器功能、扩展 CPU 支持和优...

1
2
发表了资讯
04/27 07:52

GCC 13.1 发布,集成 Modula-2 语言前端

GCC 13.1 已作为 GCC 13 的第一个稳定版本发布。此版本是一个重大更新,集成了 Modula-2 语言前端,并为计划将来发布的 Rust 语言前端奠定了基础。 GCC 的静态分析器继续被改进,有了 20 个新的诊断功能。更多的 C23 和 C++23 功能被连接起来,C++ 标准库对 C++20 和 C++23 的实验性支持得到了加强。 对于 C 语言家族,你现在可以使用 -fstrict-flex-arrays[=level] 来控制指定灵活数组成员的 legacy forms。 支持了许多新的 x8...

2
1
发表了资讯
04/26 08:43

GCC 13 中将不会引入对 Rust 的支持

第一个官方 GCC 13 版本即将发布,但 GCC 的 Rust 前端项目 gccrs 却不会如期出现在此版本中。 去年 12 月,Gccrs 被批准合并到 GCC 主线,所有 gccrs 代码也都被合并到了 GCC 13 上游代码库中。但时至今日,编译器仍未就支持 Rust 做好准备。开发人员 Philip Herron 和 Arthur Cohen 发文解释称: 我们的期望是,通过明确表示编译器仍未为真正的 Rust 代码做好准备;可以从早期用户那里得到有价值的反馈,以及来自两个不同社区...

0
1
发表了资讯
03/16 08:48

GCC 13 添加来自“平头哥”的 RISC 扩展集合

GCC 13 编译器近日合并了一组“平头哥”的 RISC-V ISA 扩展。这组扩展旨在增强 RISC-V ISA 并提供更快、更节能的功能。 合并到 GCC 13 Git 仓库的变更包括对 XTheadBa、XTheadBb、XTheadBs、XTheadCmo、XTheadCondMov、XTheadFMemIdx、XTheadFmv、XTheadInt、XTheadMac、XTheadMemIdx、XTheadMemPair 和 XTheadSync 扩展的初步支持。这些扩展来自“平头哥”半导体 (T-Head Semiconductor),它是阿里巴巴芯片制造业务部门的一部分...

1
1
发表了资讯
03/04 08:22

GCC 编译器开始为 RISC-V 提供自动矢量化支持

RISC-V 初创公司 Rivos 工程师近日向 GCC 编译器提交了一系列补丁,用于为 RISC-V 提供自动矢量化 (auto-vectorization) 支持。自动矢量化技术是一种编译器代码优化技术,即在不改变源代码的情况下,自动编译产生使用单指令多数据 (Single Instruction Multiple Data, SIMD) 指令集的二进制码,而不是程序员手动编写汇编层次的优化代码。 根据工程师的描述,这些补丁基于当前上游 rvv 向量的内在支持,并不是新的实现。大多数实...

1
1
发表了资讯
01/09 08:22

开发者希望恢复 GCC 的 Java 前端

继 GCC Rust 与 Modula-2 前端合并后,开发人员希望恢复 GNU Compiler Collection (GCC) Java front-end,GCJ。一直以来,独立开发人员 Max Downey Twiss 都在致力于通过各种修复来恢复 GCJ。 早在 2016 年,GCC 编译器就因为无人维护而放弃了对 Java/GCJ 的支持。GCC Java 支持由于缺乏维护而被删除,并且由于已经有许多自由软件 Java 实现而没有引起太多关注。 根据介绍,鉴于现在还有其他 Java 字节码编译器和一个免费的 Ja...

4
1
发表了资讯
2022/12/15 08:52

GCC 13 主线已合并 Modula-2 语言前端代码

昨天我们报道了 GCC Rust 前端“gccrs”被合并到 GCC 13 的 GNU 编译器集合代码库中。据外媒 Phoronix 报道, GCC Modula-2 语言前端代码也已经完成合并。 Modula-2 是 Pascal 语言之父 Niklaus Wirth 在 1980 年代开发的语言之一,作为一种过程编程语言,Modula-2 继承了 Niklaus Wirth 早期在 Modula 语言和最著名的 Pascal 上的工作,随后 Modula-2 又被 Modula-3 和 Oberon 语言继承。但 Modula-2 语言没有被遗弃,一直被 ...

2
1
发表了资讯
2022/12/14 08:44

GCC 13 主线已合并 GCC 的 Rust 前端项目"gccrs"代码

上周我们报道了 GCC 的 Rust 前端项目"gccrs"已被批准合并到 GCC 主线,昨天所有"gccrs"代码都已被合并到 GCC 13 上游代码库中。如果一切进展顺利,"gccrs"可能会在明年 3 月至 4 月在 GCC 13.1 中以稳定状态发布。 据介绍,GCC Rust 补丁基于上游 GNU Compiler Collection 代码库重新编写,并为新的前端设置了布局骨架,还为 i386 和 ARM 提供初始 target hook,然后开始布局前端代码。此外,GCC 编译器支持的目标 (targets) ...

14
2
发表了资讯
2022/12/09 08:34

GCC 即将加入对 Rust 的支持

GCC 的 Rust 前端项目 Gccrs 已被批准合并到 GCC 主干,这意味着下一个版本的 GCC 将能编译 Rust 源代码。 据介绍,GCC Rust 补丁基于上游 GNU Compiler Collection 代码库重新编写,并为新的前端设置了布局骨架,还为 i386 和 ARM 提供初始 target hook,然后开始布局前端代码。此外,GCC 编译器支持的目标 (targets) 数量要远远多于标准的 Rust 编译器。 通过将 GCC 作为后端集成到 rustc 中,可以更好地实现支持这些 target...

7
5
发表了资讯
2022/11/22 08:30

SUSE 工程师提交用于优化 Linux 内核的 GCC LTO 补丁

从去年开始,当使用 LLVM 的 Clang 编译器构建 Linux 内核时,已支持为内核构建启用链接时优化 (LTO, link-time optimizations)。而对于使用 GCC 构建 Linux 内核,仍缺少 LTO 支持,近日发布的一系列补丁是实现此目标的最新尝试。 Clang 的 LTO 支持在 Linux 5.16 中被合并,并一直保留至今。此举除了提升构建性能,对于内核来说,还提供了基于 Clang 的 CFI 支持。 早在十年前,在 Clang 能够构建 Linux 内核主线之前,已经有...

0
0
发表了资讯
2022/11/15 08:45

GCC 13 新增 Ampere-1A CPU 支持

CPU 供应商 Ampere Computing 宣布将 AmpereOne 作为其下一代 AArch64 “ 云原生”服务器 CPU 品牌,以取代目前基于 Neoverse-N1 的 Ampere Altra / Ampere Altra Max 处理器。 回到去年 11 月,当时 Ampere Computing 其将下一代服务器处理器 “Ampere1” 的支持补丁添加到 GCC,确认 Ampere1处理器正在使用基于 ARMv8.6 的 ISA 和其他基本功能,随后又将 Ampere1 CPU 支持添加到 LLVM 中。 虽然 AmpereOne 处理器尚未正式推出...

0
1
发表了资讯
2022/10/17 08:59

AMD 已发布 Zen 4“Znver4” 的 GCC 基础支持代码

在上个月推出 Ryzen 7000 系列“Zen 4”处理器之后,AMD 发布了代码补丁,为 Zen 4 CPU 提供了 GNU 编译器集合 (GCC) 的初始支持。 但 Zen 4 CPU 支持的成本计算、调整与 znver3 保持相同,几乎没有什么用于指令延迟差异等优化的补丁。从补丁中可见, PTA_ZNVER3 直接转为 PTA_ZNVER4 支持。 目前,基础 Znver4 的 GCC 支持代码可在邮件列表中找到,有希望将其纳入 GCC 13 主线中,然后在明年 4 月左右发布。 就在 AMD 发布 Ze...

0
0
发表了资讯
2022/09/02 08:50

Apple M2 for Linux 的 GCC 与 LLVM Clang 编译器性能对比

科技媒体 Phoronix 对运行在 Linux 上的 Apple M2 芯片 的 GCC 和 LLVM Clang 编译器进行了性能测试和对比。 此次测试采用的设备是 Apple M2 MacBook Air ,运行基于 Arch 的 Asahi Linux 系统(这是目前唯一能够运行最新 Apple M2 芯片的发行版),测试基于 Linux 5.19 内核,编译器版本分别是 LLVM Clang 14.0.6 和 GCC 12.1,它们都是 Arch/Asahi 最新版本的编译器。在所有测试中,CFLAGS/CXXFLAGS 保持不变,针对 -O3 优化级...

5
1
发表了资讯
2022/08/20 07:45

GCC 12.2 发布,修复了 70 多个错误

GCC 12.2 现已发布,这是 GCC 12 分支的第一个错误修复版本,包含了针对 GCC 12.1 中的回归和严重错误的重要修复,自上一版本以来修复了超过 71 个错误。 GCC 12 带来了许多新特性,包括 AVX-512 FP16 支持、更好的 C2X 和 C++23 支持、OpenMP 5.0 支持改进、持续的 RISC-V 改进、新的 Arm targets、x86 SLS 缓解支持以及许多其他新增功能。 根据介绍,GCC 12.2 的更新内容包括: 一些 libstdc++ 修复 相当数量的 C++ 修复 一些...

1
0
发表了资讯
2022/08/19 08:51

GCC 和 LLVM 已支持 x86__Bfloat16 类型

GCC 和 LLVM 编译器现已提供符合 x86-64 psABI 规范的 bf16 类型支持。 BF16 是一种新的浮点数格式,又叫 BFloat16 或 Brain Float16 ,是专为深度学习/机器学习应用设计的 16 位浮点格式。 BF16 可以加速机器学习(尤其是深度学习训练)算法,与 Float16 不同, Bfloat16 有 8 位指数和 7 位尾数。在相同的 16bits 的空间中,通过降低精度(比 Float16 的精度低)的方式,来获得更大的数值空间(Dynamic Range)。 BF16 最先由...

2
4
发表了资讯
2022/07/29 08:24

GCC Rust 前端编译器首个补丁正在 review

GCC 指导委员会本月批准了 GCC Rust 前端,为 GNU Compiler Collection 加入 Rust 语言支持。目前第一个正式补丁系列已提交审核。 Herron Philip 在周三提交了"Rust frontend patches v1",这是由四个补丁组成的 GCC Rust 前端初始代码。他在 gcc-patches 列表中写道,“这是 Rust 前端补丁集的初始版本 1。对于我们已实现的所有 target hook,还有更多变化需要提取。目标是查看我们是否正在为 x86 和 arm 实现 target hooks 信...

2
3
发表了资讯
2022/07/20 08:56

Arm 努力为 AArch64 引入 GCC 函数多版本控制功能

GNU 编译器集合 (GCC) 支持一个不经常使用的特性,名为函数多版本控制 (function multi-versioning - FMV),它用于支持一个函数的多个版本,并根据使用的 CPU 选择对应的函数。 但目前 GCC FMV 仅适用于 x86/x86_64 和 POWER 架构。x86_64 上的 GCC 函数多版本控制可以将函数的所有版本都包含在同一个二进制文件中,这些函数在运行时根据处理器使用对应的版本。如此一来,开发人员可以轻松地为热代码路径创建优化的函数,而不必...

5
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
7 评论
246 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部