Xcode build一次都做了什么

作者: Dylan_J | 来源:发表于2019-11-04 14:41 被阅读0次

执行一次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的任务:预处理、词法分析、语法分析、静态分析、生成中间代码。

  • 预处理:以#开头的代码处理,包括引入头文件和宏。
  • 词法分析:每一个.m源文件的声明和定义从String转化成为特殊的标记流。
  • 语法分析:将标记流解析成一棵抽象语法的树。
  • 静态分析:包含类型检查和其他检查。
  • 中间代码生成:生成LLVM代码。

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

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

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

相关文章

网友评论

    本文标题:Xcode build一次都做了什么

    本文链接:https://www.haomeiwen.com/subject/ehkdbctx.html