是否有更好的方法链接到iOS上的配置特定静态库而不是OTHER_LINKER_FLAGS?

时间:2011-06-29 23:43:40

标签: ios xcode cocoa

情况:链接到一个SDK(我正在构建),它包含Release,Debug和&它的静态库(.a文件)的分发版本。在Xcode GUI中似乎没有办法表明静态库仅用于给定的配置。

我可以在目标或项目设置的Build窗格中使用“Other Linker Flags”(OTHER_LDFLAGS),如下所示:

-all_load -ObjC "${SRCROOT}/MySDKFolder/${CONFIGURATION}-universal/libMYsdk.a"

似乎正常工作。只是想知道是否有人知道更好的方式。 (-all_load-ObjC将正确链接ObjC类别。

此时我正在使用gcc 4.2(SDK默认为4.3 sdk和3.x.x Xcode)。

1 个答案:

答案 0 :(得分:0)

所以,事实证明我让Xcode UI让我感到困惑。如果您使用$ {CONFIGURATION}变量添加通用搜索路径,然后将其中一个静态库实例添加到项目并定位它将执行正确的操作并与正确的链接进行链接,即使您获得有关该库的信息也是如此在项目中它会告诉你具体的路径。

但是,如果您希望它实际上让Xcode注意到对其中一个静态库所做的更改,那么您需要将静态库的所有版本添加到项目和目标中(是的,它看起来像是链接三个,不用担心!)。

要让Xcode检测到因构建脚本阶段而更改的.a文件,您必须实际拥有用于在“运行脚本输入”窗格中构建.a文件的所有源文件(痛苦!)不必每次都运行你的构建脚本;以及输出窗格中.a文件的所有三个变体,以便Xcode知道在脚本运行后要检查的内容,以查看是否需要重新链接项目。