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