iOS与Xcode的链接器标志

aus*_*s99 8 xcode linker objective-c llvm ios

在哪里可以找到有关我们可以在Xcode中为iOS项目指定的编译器标志和链接器标志的文档?

我想要在可能的标志上阅读更多内容的现在原因是Google Admob SDK说我们必须设置链接器-Objc标志,而Facebook SDK建议不要为较小的二进制文件设置它.所以,我想知道,我们可以为一个特定的图书馆设置Objc(在这种情况下是google admob)并且为另一个图书馆(facebook)设置它吗?我希望能够首先找到关于编译器和链接器选项的手册页或其他文档,然后放大Objc.有关如何在Xcode中设置链接器标志的大量文档和stackoverflow帖子等.缺少的是我们可以设置的可能的链接器标志列表,以及它们各自的含义.

令人惊讶的是,谷歌搜索让我很困惑,因为有clang,llvm,llvm-gcc等等的东西,LLVM站点列出了许多llvm命令,但我没有在任何相应的页面中看到-Objc.除了编译器和链接器是clang还是llvm,或者它们被调用的问题之外,还有一个地方我们可以去阅读有关Xcode当前正在使用的任何内容的文档来编译和链接iOS项目吗?(比如,Xcode 4.6和Xcode 5.0.2,如果有不同的文档集?)谢谢!

Iva*_*hev 10

你可以试试man 1 ld.对于-ObjC标志,特别描述是:

-ObjC加载实现Objective-C类或类别的静态归档库的所有成员.

编辑

你对AdMob广告SDK和Facebook的SDK的其他问题,我建议到-ObjC添加到链接器标志和看看这个文章这就解释了为什么.基本上Facebook建议不要使用它,因为你的可执行文件会因为加载到你的二进制文件中的额外目标代码而变得更大.

  • @ auspicious99 ...同样,'man clang`为clang编译器的联机帮助页.要小心,有一个编译器和一个链接器选项`ObjC` (2认同)