再进行command+B/R
进行调试,Xcode做了一下4个步骤
预处理(prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)
- 预编译:处理代码中
#开头
的预编译指令,比如删除#define
并展开宏定义,并将#include
包含的文件插入到该指令位置
#define K_Weakself __weak typeof(self) weakSelf = self;
- 编译:对预编译处理过的文件进行词法分析,语法分析和语义分析,并进行源码优化,然后生成汇编代码
- 汇编:通过汇编将汇编代码转换为机器可以执行执行的指令,并生成目标文件
.o文件
- 链接:将目标文件链接为可执行文件,这一过程,链接器将不同的目标文件链接起来,比如UIKit和Foundation中的方法和变量,跟目标文件不在一个地方,需要链接器将它们和代码链接起来
静态库:
指链接时完整拷贝到可执行文件,多次使用多次拷贝,造成冗余,使包变得更大。如.a、.lib都是静态库
动态库:
链接时不复制,程序运行时由系统加载到内存,供系统调用,系统只需加载一次,多次使用,共用节省内存。
网友评论