1. 前言
上一节学习了 iOS强化 : 熟悉 Mach-O 文件, 对 Mach-O 有个大致的了解,今天来学习 Mach-O 可执行文件的生成过程 :编译与链接。
知识参考:
2. Mach-O 文件生成过程
链接的本质
:就是把多个⽬标⽂件
组合成⼀个⽂件
(Mach-O可执行文件
)
目标文件
:通常.o文件
被我们称之为目标文件
大概步骤:
.o
目标文件llvm-ld
)并没有被执⾏Mach-O
可执行文件3. 静态链接
代码经过编译链接最后分配虚拟内存地址生成可执行文件或动态库
4. 动态链接
在运行时,由dyld
动态加载
静态/动态
链接
5. 总结
编译本质
:将代码汇编化
,并将符号
进行归类
。外部导入符号,放到重定位符号表。生成一个或多个.o目标文件
链接本质
:多个目标文件合并,符号表(包括重定位符号表)合并
成一张表,生成一个Mach-O可执行文件