商店
GCC
概述
GCC(GNU Compiler Collection,GNU 編譯器集合)是全球使用最廣泛、最老牌的免費開源編譯器套件,也是整個自由軟體生態的基石。它最初只編譯 C 語言,現在已支援 C、C++、Fortran、Ada、Go、Objective-C、D、Rust(插件)、COBOL 等 20 多種語言,幾乎涵蓋所有主流 CPU 架構(x86_64、ARM、RISC-V、PowerPC、MIPS、AVR、RISC-V 等)。維護者:GNU 專案 + Red Hat、IBM、Intel、ARM、華為等公司。官網:https://gcc.gnu.org。授權:GPL v3 + Runtime Library Exception(允許編譯出的程式保持閉源)。安裝量:幾乎所有 Linux 發行版預設自帶,Android NDK、macOS(Homebrew)、Windows(MinGW-w64/Cygwin)均可一鍵安裝。
歷史與發展
- 1987年5月23日:Richard Stallman 發布 GCC 1.0(首個公開版本,僅支援 C),這是 GCC 的首次發行日期。
- 1988年:加入 C++ 前端(g++)。
- 1991年:支持 Fortran。
- 1997–1999年:EGCS 分支重新合併,成為現代 GCC 的起點。
- 2001年:正式更名為 GNU Compiler Collection。
- 2010–2020年:陸續支援 Go、C++11/14/17/20。
- 2022年:RISC-V 成為官方一級支援架構。
- 2024年:GCC 14 完成 C23 大部分支援。
- 2025年8月14日:GCC 15.2 發布,首次將 C23 設為預設標準,C++23 100% 完成。
- 目前:已運行 38 年,仍保持每年一個大版本的節奏。
主要特點
- C23 完整支援並成為預設標準(-std=c23)。
- C++23 100% 實作(包括 std::mdspan、std::flat_map、ranges 優化、coroutines 增強)。
- Fortran 2018 完整 + Fortran 2023 部分支援。
- RISC-V Vector 1.0、Zve32x/64x 完整支援。
- AMD Zen 5(AVX10.1、APX、AVX-VNNI)與 Intel AVX10 完整最佳化。
- OpenMP 5.2、OpenACC 3.3 大幅增強。
- 更快的 LTO(連結時最佳化)和 PGO(基於效能最佳化)。
- 靜態分析器 -fanalyzer 持續改進。
- 支援超過 100 種目標架構(從 8 位元 AVR 到超級電腦)。
優勢與限制
優勢
- 支援語言和平台數量全球第一(尤其是嵌入式、RISC-V、老架構)。
- 編譯速度通常比 Clang 更快。
- 與 GNU binutils、glibc 等工具鏈深度整合。
- 完全免費 + Runtime Exception,商業閉源專案可放心使用。
- Linux 發行版、Android NDK、嵌入式韌體預設選擇。
限制
- 產生的程式碼在某些 x86_64 高負載場景下比最新 Clang 慢 5–15%。
- C++ 模組(Modules)支援仍落後 Clang 1–2 年。
- 靜態分析能力不如 Clang Static Analyzer。
- 偵錯資訊(-g)體積比 Clang 大。
- 在 Apple 生態(macOS/iOS)已被 Clang 完全取代。
總結
GCC 自 1987 年誕生至今已 38 年,是人類史上最成功、最長壽的開源編譯器之一。 2025 年的 GCC 15.2 實現了完整的 C23 和 C++23 支持,繼續在 Linux 發行版、RISC-V 生態、嵌入式設備、超級電腦、Android NDK 等領域保持絕對統治地位。對於任何需要在 Ubuntu、Cygwin、樹莓派、伺服器或嵌入式裝置上編譯 C/C++/Fortran/Go/Rust 的開發者來說,GCC 仍然是「預設且最可靠」的選擇。 一句話評估:如果你用的是 Linux、RISC-V 或嵌入式設備,十有八九正在直接或間接使用 GCC 編譯的程式碼。


