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) 发布并加入讨论🔥
发表了资讯
05/08 16:19

GCC 14.1 发布

GCC 14.1 现已发布,包括新的 CPU 支持、新的 ISA 扩展、新的 C/C++ 语言特性、静态分析器改进、新的 AMD GPU 支持以及许多其他新增功能。 一些更新亮点包括: 更多 C23 功能的实现,例如 bit-precise integer types。现在也支持 -std=c23 和 -std=gnu23 compiler flags。 支持更多 C++26 功能,例如 unevaluated strings、user-generated static_assert messages 和其他功能。 GCC 的 Fortran 前端现在支持 -std=f2023。 对 In...

3
2
发表了资讯
2023/10/06 11:37

GCC 安全策略文档已合并到仓库

最近几周在 GCC 邮件列表进行讨论后,开发团队为 GCC 代码库添加了 GCC 安全策略,以概述编译器项目的安全流程。 该文档概述了 GCC 安全漏洞处理建议、GCC 语言运行库的安全注意事项、在 GCC 中实现的安全功能,以及私下报告安全漏洞的最佳方式。 GCC 安全政策文档于周三提交到代码库。如果希望了解更多关于 GCC 安全策略的内容,可以在 SECURITY.txt 中阅读。

0
0
发表了资讯
2023/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
发表了资讯
2023/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
发表了资讯
2023/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
发表了资讯
2023/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
发表了资讯
2023/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
发表了资讯
2023/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
发表了资讯
2023/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
发表了资讯
2023/03/04 08:22

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

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

1
1
发表了资讯
2023/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
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{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
登录后可查看更多优质内容
返回顶部
顶部