+
DevOps研发效能
媒体矩阵
开源中国APP
授权协议 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) 发布并加入讨论🔥
发表了资讯
01/13 16:45

GCC 16 开发进入最终阶段:引入 Algol 68 前端、默认启用 C++20

GCC 开发团队近日宣布,GCC 16 已正式进入开发流程的第四阶段(stage 4),这意味着该版本距离正式发布又近了一步,后续工作将主要聚焦在文档完善和回归问题修复上。 按照以往节奏,作为今年重大版本的 GCC 16.1 预计仍将于 3 至 4 月间正式释出,前提是在剩余高优先级缺陷处理上进展顺利。 GCC 16 自去年 11 月起进入第三阶段,以修复错误为主,如今切换到第四阶段后,除非获得发布管理者特别批准,将不再接受任何新特性。 当前...

0
0
发表了资讯
2025/11/28 11:32

GCC 16 默认使用 C++20 标准

继本月初 GCC 开发者讨论将 GCC 编译器默认 C++ 标准切换为 C++20(在未另行指定时)之后,该变更现已正式实施。当前合并的变更将默认编译器标准从 C++17/GNU++17 调整为 C++20(准确说是 GNU++20 dialect),适用于未另行指定的 C++ 代码编译场景。 GCC 开发人员发现他们自身的代码库尚未完全兼容 C++20,但他们本周也一直在修复这些问题,以确保 GCC 16 能够与 C++20 默认标准完美兼容。 日前提交的这个变更实现了默认使用 C+...

0
0
发表了资讯
2025/04/27 10:57

GCC 15.1 发布,包含 COBOL 编译器及多项其他改进

GCC 15.1 现已发布,这是GCC 15 的首个稳定版本。新版本带来了 COBOL 编译器前端、多项 C 和 C++ 语言支持改进、对新 CPU 和 ISA 功能的支持、更强大的 Rust 编程语言支持、调试增强功能等等。 具体来说,GCC 15.1 提供了 COBOL 语言前端、各种可用性增强功能、针对 gccrs 的多项 Rust 编程语言改进、将其默认 C 语言版本升级至 C23、针对 AMD Zen 5 “znver5” target 的改进以及其他新的 AMD Zen target 优化、针对 Intel Xe...

1
2
发表了资讯
2024/11/18 14:29

GCC 15 将 C 语言默认版本切换至 C23

GCC 15 编译器于周五将其默认 C 语言版本从GNU dialect of C17 切换到了当前的 C23 standard。 事实上,由于 GNU 编译器合集中对 C23 的支持早已完成,因此几周前就有关于默认切换到 C23 语言标准的讨论。而红帽编译器团队的 Joseph Myers 则在日前正式合并了这一变更。 除非另有说明,否则将使用 GNU23 (C23) 而不是 GNU17 (C17)。感兴趣的用户,可参阅此 commit 以了解更多详细信息。 GCC 15.1 作为 GCC 15 系列的第一个稳定版...

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