当前位置: 首页 > ai >正文

GCC、glibc、GNU C(gnuc)的关系

 

GCC、glibc、GNU C(gnuc)的关系

1. 基本概念

GCC

  • 全称 GNU Compiler Collection
  • 是 GNU 项目下的编译器集合,支持多种语言(C、C++、Fortran 等)
  • 主要功能:把源代码编译为目标代码或可执行文件
  • 例子:
    gcc hello.c -o hello
    

glibc

  • 全称 GNU C Library
  • 是 GNU 项目的 C 标准库实现
  • 主要功能:
    • 提供 系统调用封装(如 open()read()write()
    • 提供 标准 C 库函数(如 printf()malloc()strcmp()
  • 程序运行时必须依赖 glibc,哪怕用 GCC 编译出来的程序也是如此。

GNU C(gnuc)

  • GNU 制定的 C 语言扩展规则
  • 不是独立的软件,而是 GCC 实现的一套 C 语言规则
  • 特点:
    • 在标准 C 规则基础上增加了许多扩展功能(如 __attribute__typeofinline
    • 代码中常见 __GNUC__ 宏,用于判断编译器是否支持这些规则

2. 三者关系

可以用 “编译器 → 语言规则 → 库” 来理解:

   程序源码 (遵循 GNU C 规则)│▼GCC (编译器)│▼链接 glibc (C 标准库)│▼可执行文件
  • GCC:负责编译代码
  • GNU C(gnuc):GCC 遵循并支持的 C 语言规则(扩展标准 C)
  • glibc:程序运行时所需的标准库函数和系统接口

3. 生活化类比

  • GCC 像一个“厨师”
    • 负责把食材(源代码)做成菜(可执行文件)
  • GNU C(gnuc) 是“烹饪规则”
    • 厨师遵循标准规则(ISO C),但加了自己家特色的做法(GNU 扩展规则)
  • glibc 是“调料和配料”
    • 大多数菜都需要它,不加调料(glibc)菜就做不出来或不好吃

4. 小结

  • GCC:编译器工具
  • GNU C(gnuc):GNU 扩展的 C 语言规则
  • glibc:C 标准库的 GNU 实现,程序运行时需要

它们之间的关系是:

  • GCC 遵循 GNU C 规则 来编译 C 代码
  • 编译出的程序 链接 glibc 以调用标准库函数和系统接口

 

http://www.xdnf.cn/news/16458.html

相关文章:

  • 准大一GIS专业新生,如何挑选电脑?
  • redhat7.9更换源为centos7(阿里云源-目前centos7可用的源)
  • 基于KMeans、AgglomerativeClustering、DBSCAN、PCA的聚类分析的区域经济差异研究
  • 222. 完全二叉树的节点个数
  • AI算法实现解析-C++实例
  • 如何在在NPM发布一个React组件
  • 第2章 cmd命令基础:常用基础命令(1)
  • 音频算法基础(语音识别 / 降噪 / 分离)
  • Rust:anyhow::Result 与其他 Result 类型转换
  • HTTP 与 HTTPS 的区别
  • 【C++篇】“内存泄露”的宝藏手段:智能指针
  • Neurosciences study notes[1]
  • vue2 使用liveplayer加载视频
  • CVPR 2025 | 华科精测:无需人工标注也能精准识别缺陷类别,AnomalyNCD 实现多类别缺陷自主分类
  • 机器学习、深度学习与数据挖掘:核心技术差异、应用场景与工程实践指南
  • 笔试——Day22
  • 【RK3588部署yolo】算法篇
  • Marin说PCB之POC电路layout设计仿真案例---10
  • Wndows Docker Desktop-Unexpected WSL error
  • 从视觉到智能:RTSP|RTMP推拉流模块如何助力“边缘AI系统”的闭环协同?
  • MOE 速览
  • 吃透 lambda 表达式(匿名函数)
  • 实验-静态路由
  • Polkadot 的 Web3 哲学:从乔布斯到 Gavin Wood 的数字自由传承
  • 在 CentOS 上安装 FFmpeg
  • “量子通信”
  • 初识opencv05——图像预处理4
  • python导包机制-更优方式
  • 构建你的专属区块链:深入了解 Polkadot SDK
  • 【MySQL基础篇】:MySQL常用数据类型的选择逻辑与正确使用