-all_load和-ObjC之间的区别

时间:2014-02-18 05:07:06

标签: ios iphone

-all_load-ObjC的不同之处。在我的项目中,两者都表现得相同。

2 个答案:

答案 0 :(得分:15)

<强> -ObjC

此标志使链接器加载库中定义Objective-C类或类别的每个目标文件。

<强> -all_load

对于64位和iPhone OS应用程序,存在一个链接器错误,该错误阻止-ObjC从仅包含类别而不包含类的静态库加载对象文件。解决方法是使用-all_load-force_load标志。 -all_load强制链接器加载它看到的每个存档中的所有目标文件,即使那些没有Objective-C代码的存档

参考Building Objective-C static libraries with categories

答案 1 :(得分:5)

来自man ld ...

-all_load   Loads all members of static archive libraries.
-ObjC       Loads all members of static archive libraries that implement an Objective-C
              class or category.

-ObjC不会绘制所有静态库中的所有符号,例如-all_load will。