Jef*_*eff 14 xcode linker static-libraries
我目前有一个非常大的代码库的Xcode项目,我称之为Project X,我将其划分为一堆子项目(项目A,B,C).
到目前为止,这些项目中的每一个都可以自行编译.它们都产生静态库.项目B和项目C依赖于项目A生成的静态库以进行构建.
我有另一个xcode项目,Project Z,它需要Projects B和C生成的静态库.这就是问题所在.当Project Z进入链接器阶段时,事情就会爆发 - 在项目B和C的库中找到重复的符号,用于它们最初在项目A中链接的代码!
我对静态库世界很陌生,我不确定如何推进Project Z,或者如何修改其他项目以便它们链接到同一个Project A lib.我觉得这是不可能的.我有什么选择?
编辑:
我应该澄清,项目B和项目C需要构建成单独的静态库,因为一些客户端只需要一个或另一个.
此外,我在OSX和iOS平台上都遇到了这种困境.
我意识到我可以通过将项目构建为动态库来解决OSX上的这个问题.但是,我不想这样做,它仍然让我在iOS上遇到同样的问题.
Rob*_*ier 17
静态库不应该包含其他静态库(或一般的第三方代码).静态库只是一组粘在一起的.o文件.因此,如果您拥有相同信息的多个副本,那么它将会爆炸.
每个静态库都应该有自己的代码.最终的应用程序负责将所有必需的库链接在一起(包括库所需的库).这样,每件事物都只有一个副本.
| 归档时间: |
|
| 查看次数: |
9999 次 |
| 最近记录: |