具有共享依赖关系的多个静态库 - iOS

时间:2012-05-10 23:25:15

标签: ios xcode linker static-libraries

我正在开发几个iOS项目,这些项目将有很多共享代码,所以我在静态库中收集代码。

现在假设我有3个我正在使用的静态库:

  1. Lib A包含通用实用程序功能
  2. Lib B包含一组类
  3. Lib C包含第二组类
  4. (和A是B和C的依赖关系)

    现在,我的最终项目需要利用所有三个库的功能。我知道A可以与B,C和我的最终项目静态链接,但是在那时我会得到一个链接器错误,因为有多个相同类的实现。

    如何应对这种情况?

1 个答案:

答案 0 :(得分:6)

对于其他任何想知道这一点的人,我发现你可以通过在每个库中包含头文件来获得我想要的行为,但只能链接到一个。

在我的问题中概述的示例中,我的主要项目将链接到A,B和C.但是,要在库B和B中使用A. C,你可以在B& B中包含A的头文件。 C,但只能在根项目中链接到A.

如果有人有更好的建议,请随时分享。

顺便说一下,有一个名为Cocoapods的项目是iOS依赖项管理器。这似乎值得关注。