我目前有一个用于非常大的代码库的 Xcode 项目,我将其称为Project X,我将其划分为一堆子项目(项目 A、B、C)。
到目前为止,这些项目中的每一个都可以自行编译。它们都产生静态库。项目 B和项目 C依赖于项目 A生成的静态库才能构建。
我有另一个 xcode 项目Project Z,它需要由Projects B 和 C生成的静态库。问题就在这里。当项目 Z进入链接器阶段时,事情就会爆炸——在项目 B 和 C的库中发现了它们最初在项目 A中链接的代码的重复符号!
我对静态库的世界还很陌生,我不确定如何继续使用Project Z,或者如何修改其他项目以便它们链接到同一个Project A库。我有一种感觉,这是不可能的。我在这里有什么选择?
编辑:
我应该澄清一下,项目 B和项目 C需要构建到单独的静态库中,因为某些客户端只需要一个或另一个。
此外,我在 OSX 和 iOS 平台上都遇到了这种困境。
我意识到我可以通过将项目构建为动态库来解决 OSX 上的这个问题。但是,我不想这样做,它仍然让我在 iOS 上遇到同样的问题。