一个程序从简单易读的代码到可执行文件往往要经历以下步骤:
源代码 > 预处理器 > 编译器 > 汇编器 > 机器码 > 链接器 > 可执行文件
源文件经过一系列处理以后,会生成对应的.obj
文件,然后一个项目必然会有许多.obj
文件,并且这些文件之间会有各种各样的联系,例如函数调用。链接器做的事就是把这些目标文件和所用的一些库链接在一起形成一个完整的可执行文件。
主要参数
这里要说的主要参数是ld工具的参数,也是在Other Linker Flags里常用到的参数。
1.-ObjC
当使用ObjC写的静态类别库(Objective-C static library that contains categories),在程序编译链接时,如果不在Other Linker Flags中填写-ObjC,往往会报错,出现”selector not recognized”。博主无力,原因看不太懂。具体原因请查阅xcode帮助文档。
-ObjC的作用是加载用ObjC实现的类、类别等所有成员。
2.-all_load
强制链接器加载所有包含非ObjC的目标文档。
3. -force_load
加载指定的目标文档。-force_load后面需要文档路径,如:
1 | |