如何在另一个静态库中添加一个静态库.a文件

时间:2013-10-26 05:20:46

标签: ios iphone static static-libraries

我正在创建一个应用程序,因为我正在添加一个第三方库。我创建了一个静态库。所以现在我想将我的库包含到第三方库。如果我在添加之前编译第三方库在我的应用程序中,它将为两者创建单个.a文件,或者我必须在另一个示例应用程序中包含我的库.a文件以及.a文件中的第三方。如果它将创建单个.a文件,那么什么是.h文件我只需要包含第三方库.h文件或我的库.h文件。

2 个答案:

答案 0 :(得分:1)

如果您要问的话,静态库不会互相嵌入。

静态库只是目标文件的集合,每个目标文件都对应一个编译单元(例如你的.m文件)。

实际上,您可以反汇编两个静态库以提取所有组件对象文件,然后在新的静态库中重新组合它们,但这不是编译器通常所做的。

所以,假设你有一个静态库lib1.a,它依赖于第二个静态库lib2.a;通过将两个库与main函数链接来创建可执行文件。除非您手动“合并”这两个库,否则每次要使用lib1.a时,您还需要链接lib2.a。

这可以在Xcode中轻松检查。

对于头文件,您还需要包含两个库的头文件。

如果您想了解有关合并两个静态库的更多信息,以便创建包含两者的目标文件的新静态库,请选中thisthis

答案 1 :(得分:0)

将一个静态库链接到另一个静态库时,只需将生成的组合静态库与应用程序链接即可。您需要包含为库定义 public 接口的标头,以及应用程序中第三方库的标头。您的库或第三方使用的任何框架都必须与应用程序链接。