Xcode Build System
iOS开发者都使用Xcode来开发、编译程序,但是我们真正了解xcode是怎样编译我们的程序到手机上的么,下面我们主要看看xcode的编译系统内容
一、Preprocessor
预处理:在此步骤中xcode会处理代码中的宏,将其展开,处理预处理器指令;处理依赖关系等
二、Compiler
编译器:将OC或者swift编译为机器码,其中clang用来编译OC、C和C++,swiftc用来蓝衣swift。
编译器compiler分为前端和后端,
(1)前端负责
- 词法分析
- 语法分析
- 生成中间代码
- 创建并管理符号表
- 等
(2)后段负责 - 代码优化
- 不同架构生成不同汇编代码
三、 Assembler
汇编器:将编译产物翻译为机器语言,生成只有数据和代码的Mach-O文件
四、 Linker
链接器:将各种对象文件和库链接合并为一个可以在 iOS 或 macOS 系统上运行的 Mach-O 可执行文件
五、Loader
加载器:将一个程序加载到内存中,并运行执行它。加载程序负责分配运行程序内存空间和初始化寄存器所需的初始状态