修改链接参数(Other Linker Flag)

来源:互联网 发布:umts是什么网络类型 编辑:程序博客网 时间:2024/05/29 14:48

关于Other Linker Flag:


Targets选项下有Other linker flags的设置,用来填写XCode的链接器参数,如:-ObjC -all_load -force_load等。

在我们的程序运行时,会将我们的.h.m文件最后生成一个.obj的可执行文件,在最后一步需要把.o文件和C语言运行库链接起来,这时候需要用到ld命令。源文件经过一系列处理以后,会生成对应的.obj文件,然后一个项目必然会有许多.obj文件,并且这些文件之间会有各种各样的联系,例如函数调用。Other Linker Flag链接器做的事就是把这些目标文件和所用的一些库链接在一起形成一个完整的可执行文件。



Other Linker Flag参数分析:

1.-ObjC

这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来。这样编译之后的app会变大(因为加载了其他的objc代码进来)。
但是如果静态库中有类和category的话只有加入这个flag才行。

2.-all_load

这个flag是专门处理-ObjC的一个bug的。用了-ObjC以后,如果类库中只有category没有类的时候这些category还是加载不进来。变通方法就是加入-all_load或者-force-load。-all_laod会强制链接器把目标文件都加载进来,即使没有objc代码。-force_load在xcode3.2后可用。但是-force_load后面必须跟一个静态库的路径。

3.-force_load

这个flag后面必须跟一个静态库的路径。该路径会在程序编译时,将该路径的文件加载到可执行文件中。






0 0
原创粉丝点击