2013-10-26 106 views
0

我正在创建一个应用程序,在这里我添加了一个第三方库。并且我创建了一个静态库。因此,现在我想包括我的库第三方库。如果我在添加到我的应用程序之前编译该第三方库,它将为两者创建仅一个.a文件,或者我必须将我的库.a文件与第三方一起包含在另一个示例应用程序的.a文件中。另外,如果它会创建单个.a文件什么是.h文件,我只需要包含第三方库.h文件或我的库.h文件。如何在另一个静态库中添加一个静态库.a文件

+0

当我们添加我的库作为第三方库的编译时间。它只会创建一个.a文件或不。当我添加第三方库时,我可能只需要这个编译库.a文件或我的库.a文件也。 – venkat

回答

1

如果这是您要求的,静态库不会相互嵌套。

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

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

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

这可以很容易地在Xcode中检查。

至于头文件,你也需要包含这两个库的头文件。

如果您想了解更多关于合并两个静态库以创建一个包含两个对象文件的新静态库的信息,请检查thisthis

0

将一个静态库链接到另一个静态库时,只需将生成的组合静态库链接到应用程序。您将需要在您的应用程序中包含为您的库定义public接口的头文件和用于第三方库的头文件头。您的图书馆或第三方使用的任何框架都必须与应用程序链接。

相关问题