我有一个Xcode项目,该项目本质上是一个应用程序,已内置到几个几乎相同的目标中。我已经将几乎所有构建配置设置移到了中央位置,但是我无法弄清楚如何将针对静态库(libMantle.a)的链接移至xcconfig。我已经尝试过-framework-l标志,就像我在其他各种库中使用的一样,但是它们不起作用。有没有一种方法可以将.a文件从“带库的链接二进制文件” Pane 中删除,所以我不需要手动使所有目标保持同步?

最佳答案

弄清楚了...

假设您要链接到文件libGoogleAnalyticsServices.a。要使它工作,.xcconfig中基本上应该具有三样东西。

首先,您要确保在搜索路径中具有库的路径。然后,您需要传递两个标志,以使链接器的-L和目录的路径分别为-l和库的Link Binary With Libraries

将所有内容放在一起将为您提供以下信息:

LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/Vendor/Google Analytics"
OTHER_LDFLAGS = $(inherited) -L"$(SRCROOT)/Vendor/Google Analytics" -lGoogleAnalyticsServices

(您需要调整相对路径)

解决这个问题最有帮助的是Log Navigator(Xcode中的command + 8)。通过将静态库放入“构建阶段” ojit_code面板中并进行成功的构建,您可以在日志中查看链接器步骤的详细信息,并查看其如何将Analytics库传递给编译器。从那里,它只是在xcconfig中复制这些标志。

关于ios - 在xcconfig中将二进制文件与静态库链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19102565/

10-14 19:55
查看更多