悯拄等 发表于 2026-1-27 17:20:00

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
https://www.cxy5.com/./complie-link.assets/image-20260127113303552.pnggcc主要执行步骤

编译

(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 类:
https://www.cxy5.com/./complie-link.assets/image-20260127161232857.pngELF文件格式

ELF文件处理相关工具

Binutils:https://www.gnu.org/software/binutils/
ar:归档文件,将多个文件打包成一个大文件
as:被 gcc 调用,输入汇编文件,输出目标文件供链接器ld连接
ld:GNU 链接器。被 gcc 调用,它把目标文件和各种 库文件结合在一起,重定位数据,并链接符号引用
objcopy:执行文件格式转换
objdump:显示 ELF 文件的信息
readelf:显示更多 ELF 格式文件的信息(包括   DWARF 调试信息)

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

涅牵 发表于 2026-2-3 03:54:05

前排留名,哈哈哈

廖雯华 发表于 2026-2-3 07:25:53

感谢分享,学习下。

忆雏闲 发表于 2026-2-5 05:47:42

感谢分享

靳谷雪 发表于 2026-2-5 06:44:54

懂技术并乐意极积无私分享的人越来越少。珍惜

倡遍竽 发表于 2026-2-6 12:50:51

东西不错很实用谢谢分享

毋献仪 发表于 2026-2-8 05:09:36

懂技术并乐意极积无私分享的人越来越少。珍惜

栓州 发表于 2026-2-10 16:42:31

收藏一下   不知道什么时候能用到

龙正平 发表于 2026-2-10 19:39:50

不错,里面软件多更新就更好了

科元料 发表于 2026-2-11 06:11:14

东西不错很实用谢谢分享

碣滥 发表于 2026-2-11 07:34:05

过来提前占个楼

枢覆引 发表于 2026-2-16 12:56:39

谢谢分享,试用一下

梁丘眉 发表于 2026-2-24 07:08:54

热心回复!

徙办 发表于 2026-2-27 14:26:29

感谢分享,学习下。

尝琨 发表于 2026-3-2 14:02:33

这个好,看起来很实用

赐度虻 发表于 2026-3-8 10:19:03

这个有用。

毁抨句 发表于 2026-3-12 04:22:18

很好很强大我过来先占个楼 待编辑
页: [1]
查看完整版本: linux开发编译与链接