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)
发表了资讯
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
发表了资讯
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
发表了资讯
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
发表了资讯
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
发表了资讯
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
发表了资讯
07/12 08:44

GCC Rust 得到 GCC 批准,将被纳入主线代码库

GCC Front-End For Rust(也称为 GCC Rust)是 Rust 语言在 GCC 之上的一个完整替代性实现,目标是成为 GNU 工具链的完全上游。 由于这是一个前端项目,该编译器将获得对所有 GCC 内部中端优化通道的完全访问权,这与 LLVM 不同。这个编译器的用户可以使用熟悉的 -O2 标志来调整 GCC 的优化器。 与 GCC 的紧密结合将对一些项目很有帮助,这些项目也将能够从 GCC 插件中受益。当然 GCC 也会带来对更多目标架构的支持,基于 GCC ...

8
4
发表了资讯
05/23 08:53

兆芯再次向 GCC 上游提交合并“陆家嘴”CPU 支持补丁

兆芯上周再次向 GCC 编译器上游提交了合并“陆家嘴”CPU 的支持补丁,因为此前提交的时候由于时间太晚,错过了 GCC 12 的合并窗口。 台湾威盛 (VIA) 和上海市政府的合资企业兆芯在 2019 年推出了 ZX-E / KX-6000 系列 x86_64 微架构处理器,代号为 “陆家嘴 (Lujiazui)”,被用于笔记本电脑和服务器。KX-6000 采用 16 纳米工艺制造,频率 3.0GHz,为八核 x86-64 处理器,性能比上一代 KX-5000 系列提升了 50%,达到了英特尔 i5...

2
1
发表了资讯
05/08 07:04

GCC 12.1 已发布

五月是 GCC 1.0 发布的 35 周年,同时 GCC 12.1 也已正式发布,GCC 12.1 是一个重要的功能版本,包含新的 C/C++ 功能到 Fortran 和 Ada 等其他语言的持续工作,支持跨多个架构的最新 CPU 和 ISA 功能,并推进 GCC 的最新功能如内置静态分析器和 JIT 库。 GCC 12.1 的一些亮点包括: 继续为编译器和 C++ 标准库分别支持 C2X 和 C++23 以及 C 和 C++ 的下一版本。C2X 和 C++23 支持仍被视为实验性的。C++20 libstdc++ 支持也得到了...

3
2
发表了资讯
05/02 08:43

GCC 12 引入了更多面向 C++23 的实现

与每个主要的 GCC 版本一样,即将于本周发布的 GCC 12.1 带来了许多新特性、改进和 bug 修复。Red Hat 的 Marek Polacek 在最新的一篇博客文章中,概述了在这个主要的 GNU Compiler Collection 更新中带来的一些 C++ 语言改进。 Polacek 指出,在 GCC 12 中共实现了几个 C++23 提案。GCC 12 的默认方言是 -std=gnu++17;要启用 C++23 特性,需要使用 -std=c++23 或 -std=gnu++23 命令行选项,后一个选项允许 GNU 扩展。不过值得...

8
3
发表了资讯
04/23 07:06

GCC 11.3 发布,修复了近 200 个 bug

GCC 11.3 现已发布,这是 GCC 11 分支的错误修复版本,距离上一个版本 GCC 11.2 发布隔了近 9个月的时间。此版本包含了对 GCC 11.2 中回归和严重错误的重要修复,自上一个版本以来修复了超过 189个 错误。GCC 12(GCC 12.1 稳定版)计划在未来几周内发布。 根据介绍,GCC 11.3 中包含了针对各种 Darwin/macOS 问题的修复、许多 C++ 和 libstdc++ 修复、许多 RISC-V 修复;并且确实向后移植了 IBM z16 的官方检测,其中的 GCC 11...

3
1
发表了资讯
04/02 08:27

GCC 编译器已合并 LoongArch 支持补丁

上周 GCC 指导委员会 (GCC steering committee) 批准了龙芯的 LoongArch 移植,现在这些代码已被正式合并到 GCC 编译器。 在 GCC 12 开发周期的"stage four"的最后阶段,龙芯的 LoongArch 移植已经被合并了,其将在大约一个月后发布稳定版。据称,由于新的 CPU 移植不会对现有的编译器代码造成风险,所以 LoongArch 代码能够在 GCC 指导委员会的批准后顺利进入 GCC。 LoongArch 是龙芯打造的自主指令系统架构,LoongArch 包括基...

2
4
发表了资讯
03/30 08:09

GCC 编译器接受龙芯 LoongArch CPU

GCC 指导委员会 (GCC steering committee) 批准了龙芯的 LoongArch 移植,并指派了两位中国开发者作为维护者,预计会在未来几周加入到 GCC 12 稳定版本。 公告写道,目前已进入最后的技术审查和补丁批准阶段,后续的工作包括与 GCC 版本发布经理协调,以便将补丁合并到开发树,然后加入到 GCC 12 中。 LoongArch 是龙芯打造的自主指令系统架构,LoongArch 包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近 2000 条...

8
6
发表了资讯
03/28 08:52

GCC 支持兆芯陆家嘴 CPU

台湾威盛 (VIA) 和上海市政府的合资企业兆芯在 2019 年推出了 ZX-E / KX-6000 系列 x86_64 微架构处理器,代号为“陆家嘴 (Lujiazui)”。 KX-6000 采用 16 纳米工艺制造,频率 3.0GHz,为八核 x86-64 处理器,性能比上一代 KX-5000 系列提升了 50%,达到了英特尔 i5-7400 的水平。其在 2019 年刚发布时,Linux 内核上游就加入了对它的支持,但被广泛使用的 GCC 编译器一直没有正确识别陆家嘴处理器,而是将其错误识别为英特尔的...

3
5
发表了资讯
01/19 07:49

GCC 12 进入第 4 阶段的开发,具有许多新的编译器功能

GCC 版本经理 Richard Biener 于 1 月 17 日 发送了一封 《GCC 12.0.1 状态报告》邮件,宣布 GCC 12 开发的“第 3 阶段-错误修复期”已结束,现已进入“第四阶段”:专注于回归/文档修复的开发,在此期间进行的所有更改都应尽量避免引入新的回归。 目前 GCC 12 仍有 38 个P1 优先级的回归需要处理,此外,P2 优先级的为 310 个,P3 优先级的为 286 个,P4 优先级的为 221 个,P5 优先级的为 25 个。大部分新的 P3 分类 bug 将变...

1
0
发表了资讯
01/17 08:20

GCC 12 已准备好抵御基于 Unicode 的 Trojan Source 攻击

此前我们报导了 Unicode 算法漏洞“Trojan Source”几乎影响所有编程语言,利用 Unicode 的控制字符,可对程序的源代码进行重新排序,从而在编译时产生另一种结果。但即将发布的 GCC 12 编译器版本有一个新的警告,可以帮助指出源代码中可能存在的 Trojan Source 攻击。 GCC 12 添加了 -Wbidi-chars 警告标志,用于检测涉及 Unicode 控制字符的 Trojan Source 攻击。此外还有一个新的默认开启的标志,用于 GCC 诊断以转义非 AS...

4
4
发表了资讯
2021/11/21 09:01

Linux 更新 x86/x86_64 SLS 缓解的内核补丁

Linux 内核发布了补丁,开发人员即将启用这个新的 GCC 编译器特性: x86/86_64 上的 -mharden-sls= 选项 。 -mharden-sls= 选项在 x86_64-allyesconfig 上使用 GCC-12 和 GCC-11 构建,并在 x86_64-defconfig+kvm_guest 上进行了引导测试。它支持 none、all、return 或 indirect-branch 四个值,可以减轻在控制流无条件改变后,在内存中线性推测执行指令的直线推测。 该内核补丁添加了直线推测缓解处理,可以通过SLS Kconfig 开...

0
2
发表了资讯
2021/11/19 08:33

Linux 将在 GCC 12 中为 x86 cpu 添加 SLS 缓解选项

11 月 17 日,Linux 将 x86/ x86_64 的 SLS 缓解选项 -mharden-SLS 合并到 GCC 12 Git 上,预计不久将推出内核补丁,将 -mharden-SLS 缓解选项作为对 x86 cpu 最新的安全保护。 Straight Line Speculation (SLS)直线预测漏洞是去年夏天 Arm 架构上出现的一个漏洞 (CVE-2020-13844),该漏洞可导致攻击者对 ARM 架构处理器进行侧边信道攻击(SCA)。但 Arm 很快在 GCC 和 LLVM 编译器中推出了针对 SLS 的缓解补丁:可启用 ARM ...

5
2
2021/11/11 08:14

英特尔为 GCC 更新 Alder Lake 调校

提交记录显示,英特尔工程师已经更新了针对 GNU Compiler Collection 的 Alder Lake 调整,以便在 2022 年第二季度推出的 GCC 12 中产生更高效的性能。 今年早些时候发布的 GCC 11 编译器稳定版中,引入的是最初的 Alder Lake 目标,而现在英特尔第12代酷睿 "Alder Lake "处理器已经正式问世。从 GCC 11 到目前位置的 GCC 12,使用 -march=alderlake 或 -mtune=alderlake 已经携带了针对其上一代内核调整的现有 Ice Lake 成本表...

0
0
2021/11/10 08:51

GCC 12 将支持 Armv9-A 指令集架构

提交记录显示,GCC 12 编译器现已支持 -march=armv9-a,以针对即将推出的 Armv9-A ISA。 此前,ARMv8 已经发布了近 10 年时间,其主要特点是增加对 64 位指令集的支持,包括目前性能最强的 Cortex-X1/A78,都是基于 ARMv8.x 指令集打造。而在今年 3 月,ARM 正式推出 ARMv9 指令集,在兼容 ARMv8 的基础上,提升处理器性能,同时提升安全性、增强矢量计算、机器学习及数字信号处理。而基于 ARMv9 开发的处理器预计将在 2022 年初...

0
4
2021/10/26 05:13

GCC 12 合并了对 RISC-V 的 Bitmanip 扩展的初始支持

提交记录显示,GCC 12 编译器已经合并了初步支持 RISC-V ISA 位操作扩展的补丁。 RISC-V 的 Bitmanip 扩展是几个组件扩展的集合,旨在帮助迎合开源处理器ISA,以获得更好的效率,从而减少代码大小,提高性能,并减少能源消耗。此前,GNU 工具链也已经开始支持 RISC-V 的 Zbs 指令。Zbs 是 RISC-V 的 Bitmanip 扩展的一部分,是对 RISC-V 架构的 "位操作 "的补充。 而此次提交的补丁则包含了 GCC 12 中的初始 Bitmanip 扩展支持,...

2
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 评论
244 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部