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

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.dtcms.com/a/303945.html

相关文章:

  • SkSurface---像素的容器:表面
  • PowerShell脚本自动卸载SQL Server 2025和 SSMS
  • 零基础-动手学深度学习-7.7 稠密连接网络(DenseNet)
  • 景区负氧离子环境监测系统云平台方案
  • 论文阅读:2024 arxiv AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks
  • 【OpenAI】ChatGPT辅助编码:Spring Boot + Copilot自动生成业务逻辑
  • 【MySQL】从连接数据库开始:JDBC 编程入门指南
  • Java优雅使用Spring Boot+MQTT推送与订阅
  • vue请求golang后端CORS跨域问题深度踩坑
  • 【STM32】FreeRTOS 任务消息队列 和 中断消息队列的区别(六)
  • 14 - 大语言模型 — 抽取式问答系统 “成长记”:靠 BERT 学本事,从文本里精准 “揪” 答案的全过程(呆瓜版-1号)
  • “非参数化”大语言模型与RAG的关系?
  • 云原生MySQL Operator开发实战(五):扩展与生态系统集成
  • python使用ffmpeg录制rtmp/m3u8推流视频并按ctrl+c实现优雅退出
  • DateTime::ToString 日期时间文本格式化深度解析(C++)
  • Mysql InnoDB存储引擎
  • 2.快速开始
  • Windows下基于 SenseVoice模型的本地语音转文字工具
  • 【Linux我做主】探秘进程状态
  • 聚铭安全管家平台2.0实战解码 | 安服篇(三):配置保障 自动核查
  • 从单机架构到分布式:Redis为何成为架构升级的关键一环?
  • OpenLayers 综合案例-底图换肤(变色)
  • DevOps 详解
  • Linux -- 文件【中】
  • CVE-2022-46169漏洞复现
  • DNS污染与劫持
  • 《林景媚与命运协议》
  • 服务器数据恢复—RAID上层部署的oracle数据库数据恢复案例
  • logtrick 按位或最大的最小子数组长度
  • JavaWeb(苍穹外卖)--学习笔记15(分页查询PageHelper)