Skip to content

Latest commit

 

History

History
44 lines (27 loc) · 1.27 KB

README.md

File metadata and controls

44 lines (27 loc) · 1.27 KB

链接


链接器使得 separate compilation 成为可能,不必将应用组织为一个巨大的源文件,而是分解为可管理的小模块,独立的修改编译发布

初识 compiler driver

main.c, swap.c

$ gcc -O2 -g -o p main.c swap.c

运行过程是: C 预编译器 cpp -> C 编译器 ccl -> 汇编器 as -> 链接器 ld

可重定位目标文件

ELF 可重定位目标文件格式

字段 描述
ELF 头 目标文件类型,字大小,字节顺序,其他 section 的元数据
.text 已编译程序的机器码
.rodata

查看 ELF 文件:

使用 objdump 命令,在 Linux 下直接搞,在 MAC 下要安装 binutils(命令 brew install binutils),然后所有的命令加前缀 g,比如这里使用 gobjdump

P455 - foo3.c bar3.c P458 - addvec.c multvec.c main2.c

Blogs:

1.探寻 ELF 文件内部: http://blog.csdn.net/vonzhoufz/article/details/44925439

2.创建并使用静态库(ar 命令) http://blog.csdn.net/vonzhoufz/article/details/44463977