【问题标题】:Cascading static library linking? [closed]级联静态库链接? [关闭]
【发布时间】:2013-07-15 09:35:34
【问题描述】:
我用常用工具创建了一个库kit!。
我创建了一个库 box!,它具有使用 kit! 的酷炫功能。
现在我想创建一个使用 box! 的客户端应用。
我必须链接这两个库吗?
还是box!链接kit!?
希望这个问题有意义。我使用一个工作流,其中我也包含库项目(以便能够在开发过程中编辑库),将它们添加为目标依赖项,直接从项目源目录导入标头。
【问题讨论】:
标签:
ios
cocoa-touch
linker
static-libraries
【解决方案1】:
对于静态库,通常最好将 kit 和 box 直接链接到客户端应用程序。
如果 kit 是 box 的私有依赖项(即私有子库),那么将 kit 与 box 链接是有意义的,这样客户端就不必管理私有依赖项。您也可以在您知道始终存在一对一依赖的情况下执行此操作。所以是的,您可以将套件作为依赖项添加到盒子并将套件链接到盒子。然后客户端应用程序可以链接到框。
对于多依赖项,您想要避免的是巨大的递归构建、巨大的目标文件、符号克隆/复制,以及不知道最终会得到哪些定义。虽然他们不会消除这个问题,但他们会减少它。