0

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

4

2 回答 2

1

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

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

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

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

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

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

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

于 2013-10-26T10:50:52.913 回答
0

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

于 2013-10-26T10:29:50.327 回答