繁体   English   中英

iOS与Xcode的链接器标志

[英]Linker flags for iOS with Xcode

在哪里可以找到有关我们可以在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,如果有不同的文档集?)谢谢!

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

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

编辑

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

当我将一个函数放入我的.hpp文件时,我遇到了这个问题。

void logError(char const* szError)
{
    ...
}

我不得不添加内联使其工作。

inline void logError(char const* szError)
{
    ...
}

更好的是不要在标题中定义您的函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM