因此,我过去曾多次嵌套静态库,但从来没有像这样嵌套过,这引起了一些问题。
现在让我们假设我有 3 个静态库,A、B 和 C。以及一个使用它们的项目,如下所示。
A 是由常用的自定义视图、数据结构和类别组成的基础库。B 是与 A 链接的库,其中包含在多个项目之间共享的视图控制器。C 是另一个与 A 链接的库,其中包含在多个项目之间共享的视图控制器。
这个特定的项目使用 B 和 C 的代码。所以结构如下所示:
A
/ \
B C
\ /
Project
而且由于 Xcode 链接静态库的方式基本上是合并它们,B 和 C 都具有 A 的所有符号。所以我得到了重复的符号链接器错误。我该如何处理这个问题?我需要弱链接吗?还是我缺少一个特定的标志?我是否需要设置某种类型的依赖关系其他感谢链接二进制文件?
我用谷歌搜索并在这里搜索,发现了很多很好的信息,但没有任何我能够扭曲到这种特殊情况。
更新的想法
所以让我问这个问题,因为它似乎是一个可能的解决方案,因为在阅读了能够合并的静态库之后确实不应该这样做。
我应该将它们全部放在一个项目中并且仅具有多个静态库目标,而不是拥有 3 个独立的静态库吗?甚至不使用目标依赖关系,只使用 A、AB 和 AC,以及包含目标文件和标题的 ABC 目标?毫无疑问,这对于构建设置来说会相当复杂,并且可能会使源代码分发变得有点复杂,但它会解决我当前的问题,并且可能是更好的处理方式。怎么想?