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

linux开发编译与链接

目录
  • 编译与链接
    • GCC
      • 命令格式
      • gcc主要执行步骤
        • 编译
        • 汇编(as)
        • 链接(ld)
      • GCC涉及的文件类型
    • ELF
      • ELF简介
      • ELF文件格式
      • ELF文件处理相关工具

编译与链接

GCC

GCC(GNU Compiler Collection)

GCC, the GNU Compiler Collection - GNU Project

由 GNU开发的,遵循 GPL 许可证发行的编译器套件

支持 C、C++、Objective-C、Fortran、Ada 和 Go 语 言等多种语言前端,已被移植到多种计算机体系架构 上,如 x86、ARM、RISC-V 等

GCC 的初衷是为 GNU 操作系统专门编写一款编译器, 现已被大多数 “Unix-like”操作系统(如 Linux、BSD、MacOS 等)采纳为标准的编译器

命令格式

gcc [options] [filenames]

image-20260127113303552

gcc主要执行步骤

编译

(cc1,这里针对 C 语言,不同的语言有自 己的编译器):编译器完成 “预处理” 和 “编 译”,“预处理” 指处理源文件中以 “#” 开 头的预处理指令,譬如 #include、#define 等; “编译” 则针对预处理的结果进行一系列的词法分析、语法分析、语义分析,优化后生成汇 编指令,存放在 .o 为后缀的目标文件中

汇编(as)

汇编器将汇编语言代码转换为机 器(CPU)可以执行的指令

链接(ld)

链接器将汇编器生成的目标文件 和一些标准库(譬如 libc)文件组合,形成最 终可执行的应用程序

image-20260127114336195

GCC涉及的文件类型

.c:C 源文件

.cc/.cxx/.cpp:C++ 源文件

.i:经过预处理的 C 源文件

.s/.S:汇编语言源文件

.h:头(header)文件

.o:目标(object)文件

.a/.so:编译后的静态库(archive)文件和共享库 (shared object)文件

a.out:可执行文件

ELF

ELF简介

ELF(Executable Linkable Format)是一种 Unix-like 系统上的二进制文件格式标准

ELF 标准中定义的采用 ELF 格式的文件分为 4 类:

image-20260127161232857

ELF文件格式

image-20260127161713876

ELF文件处理相关工具

Binutils:https://www.gnu.org/software/binutils/

ar:归档文件,将多个文件打包成一个大文件

as:被 gcc 调用,输入汇编文件,输出目标文件供链接器ld连接

ld:GNU 链接器。被 gcc 调用,它把目标文件和各种 库文件结合在一起,重定位数据,并链接符号引用

objcopy:执行文件格式转换

objdump:显示 ELF 文件的信息

readelf:显示更多 ELF 格式文件的信息(包括 DWARF 调试信息)

http://www.jsqmd.com/news/308749/

相关文章:

  • 2026年二手手机回收的操作流程完整介绍
  • 2026英语雅思培训课程辅导机构推荐榜单 解析课程教学模式差异 助力家长科学选课适配孩子备考需求
  • 2026最新黄糊精、白糊精、预糊化淀粉、羧甲基纤维素钠 CMC、羧甲基淀粉钠 CMS 厂家 TOP5:多功能辅料合规之选,适配全场景需求
  • 德国宾德(binder)华东地区代理商大盘点:烘箱核心服务商全解析
  • C++多线程编程
  • C++单例模式 (Singleton Pattern)
  • svd在图像处理中的应用
  • 【完全复现】含可再生能源和储能的区域微电网的最优运行(考虑鲁棒性和不确定性)【多阶段鲁棒调度模型】附Matlab代码
  • 书单之自动驾驶感知实践:从3D到BEV
  • Vue组件开发:直接写法 vs 数据驱动,该怎么选?
  • 告别网盘限制!群晖 NAS部署 Copyparty,轻松搞定文件共享与远程访问
  • Gmail养号指南:如何维稳防封?
  • 传输标准:助力集成商为客户交付集团专网质量达标方案
  • 冗余标准:支撑运维商为客户交付全链路交换冗余保障方案
  • 运行指标:支撑IT外包公司为客户交付资源使用率监测方案
  • 系统巡检:助力设备商为客户交付统一配置升级服务方案
  • 35岁程序员转型AI攻略:为什么说现在学习大模型正是黄金时期?附必收藏学习资源
  • 运维分析:支撑运维商为客户交付局域网深度诊断方案
  • AI大模型时代的5大黄金岗位,年轻人的职业规划指南_适合年轻人就业新型岗位大盘点
  • d3dx10d_43.dll文件丢失找不到情况 免费下载方法分享
  • 意向性注入:Skill如何让AI真正“学会“你的工作方式(程序员必看,收藏级干货)
  • 大模型与VLA在自动驾驶中的应用:技术解析与高薪岗位指南
  • 大模型入门到精通:行业职位细分与领域详解,建议收藏,一文理清大模型行业细分与职位细分
  • 让大模型“动“起来!智能体AI的4大适应范式详解,程序员必备收藏
  • 蒙油加油站品牌运营商
  • 你的算力被浪费了!警惕GPU热节流这一“隐形杀手”
  • 民营加油站品牌推荐
  • Selenium 绕过 Cloudflare 反爬检测
  • Selenium 性能优化:减少显式等待时间
  • 民营加油站品牌