Apple`ld`和`-ObjC` Switch?

时间:2012-11-12 14:08:03

标签: objective-c linker

这意味着什么(来自Apple的ld手册页):

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

我认为我从未见过这种描述,而且我不知道在链接阶段“加载”存档成员意味着什么。它列在“控制库的选项”下。

Apple需要iDevices的静态链接,但-Bstatic似乎缺失。 Apple是否使用-ObjC强制进行静态链接?

杰夫

1 个答案:

答案 0 :(得分:1)

这是关于静态库和目标C如何工作的一个很好的描述: http://www.dribin.org/dave/blog/archives/2006/03/13/static_objc_lib/

通常,如果您使用静态库,则需要让链接器知道它包含Objective-C代码。这样就可以正确地连接ObjC符号和引用,因为它们与传统的C和C ++不同(相比之下,Objective C非常动态)。