6

我有一个 Xcode 项目,它本质上是一个应用程序,内置到几个几乎相同的目标中。我已经将几乎所有的构建配置设置都移到了中心位置,但我不知道如何将针对静态库 (libMantle.a) 的链接移动到 xcconfig。我已经尝试了-frameworkand-l标志,就像我用于其他各种库一样,但它们不起作用。有没有办法从 Link Binary with Libraries 窗格中获取 .a 文件,所以我不需要手动保持所有目标同步?

4

1 回答 1

7

弄清楚了...

假设您要链接到文件libGoogleAnalyticsServices.a。基本上,您应该在 .xcconfig 中拥有三样东西才能使其正常工作。

首先,您要确保在搜索路径中有库的路径。然后您需要传递两个标志以使链接器-L对目录路径和-l库感到满意。

把它们放在一起会让你得到类似的东西:

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

(您需要调整您的相对路径)

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

于 2013-10-01T18:06:01.213 回答