news 2026/5/30 18:58:29

linux开发编译与链接

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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]

gcc主要执行步骤

编译

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

汇编(as)

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

链接(ld)

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

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 类:

ELF文件格式

ELF文件处理相关工具

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

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

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

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

objcopy:执行文件格式转换

objdump:显示 ELF 文件的信息

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 15:35:50

【课程设计/毕业设计】基于springboot的毕业生就业系统应届生毕业生就业信息管理系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/30 11:24:01

2026年AI岗位将增长10倍,这7个方向最适合普通程序员转型

文章分析了2025年AI行业岗位增长趋势(招聘量增加10倍),为普通职场人推荐了7个适合转型的AI岗位:大模型应用工程师、AI产品经理、Prompt工程师、数据工程/数据治理、AI解决方案、AIGC内容岗位和AI技术支持/实施。这些岗位对技术门槛…

作者头像 李华
网站建设 2026/5/30 15:18:33

AI Agent进化之路:从工具到伙伴,从自动化到自主决策

在AI技术狂飙突进的今天,AI Agent(智能体)已成为最受瞩目的技术范式之一。从ChatGPT的“对话助手”到AutoGPT的“任务执行者”,从单一功能工具到复杂场景的“决策中枢”,AI Agent的进化不仅重塑了人机协作模式&#xf…

作者头像 李华
网站建设 2026/5/29 22:38:06

‌TestOps的“测试资产复用”:一个用例,多环境跑

复用不是选择,而是效率的基础设施‌ 在持续交付成为常态的今天,‌“一个测试用例,跨开发、测试、预发、生产多环境自动执行”‌ 已不再是理想,而是高成熟度测试团队的标配。通过参数化配置、环境标签化、基础设施即代码&#xff…

作者头像 李华
网站建设 2026/5/29 23:31:33

‌“测试环境即代码”:ArgoCD如何重塑软件测试的基础设施范式

ArgoCD不是部署工具,而是测试环境的“版本控制系统”‌当测试团队还在手动搭建、复制、修复测试环境时,采用ArgoCD的团队已实现:‌一次提交,全环境同步;一次回滚,全链路复现‌。 ArgoCD通过GitOps模式&…

作者头像 李华