经过了,总要留些痕迹 - iOS原理

Xcode build一次都做了什么

2019-11-04  本文已影响0人  Dylan_J

执行一次Build:

预处理--语意和语法分析--生成代码和优化--汇编--链接

1.编译信息写入辅文件中,创建编译后的文件架构(name.app)。
2.处理打包信息。
3.执行CocoaPod编译前脚本,执行CheckPods Manifest.lock。
4.编译各个.m文件,使用Compile C和clang命令。
5.链接需要的Framework。
6.编译Xib文件。
7.拷贝Xib文件、图片等资源文件到结果目录。
8.编译ImageAssets。
9.处理info.plist。
10.执行CocoaPod脚本。
11.拷贝Swift标准库。
12.创建.app文件和对其签名。

编译过程

Clang 编译器前端
LLVM 编译器后端


编译.png

Clang的任务:预处理、词法分析、语法分析、静态分析、生成中间代码。

LLVM的任务:将代码进行优化并产生汇编代码。

LLVM三层式架构:
1.支持多语言作为输入。
2.共享式优化器。
3.许多不同的目标平台。

汇编器:将可读的汇编代码转换成机械代码,最终穿件目标对象.o文件。
连接器:把目标文件和库相连,最终输出可运行文件。

上一篇 下一篇

猜你喜欢

热点阅读