我正在创建一个应用程序,因为我正在添加一个第三方库。我创建了一个静态库。所以现在我想将我的库包含到第三方库。如果我在添加之前编译第三方库在我的应用程序中,它将为两者创建单个.a文件,或者我必须在另一个示例应用程序中包含我的库.a文件以及.a文件中的第三方。如果它将创建单个.a文件,那么什么是.h文件我只需要包含第三方库.h文件或我的库.h文件。
答案 0 :(得分:1)
如果您要问的话,静态库不会互相嵌入。
静态库只是目标文件的集合,每个目标文件都对应一个编译单元(例如你的.m文件)。
实际上,您可以反汇编两个静态库以提取所有组件对象文件,然后在新的静态库中重新组合它们,但这不是编译器通常所做的。
所以,假设你有一个静态库lib1.a,它依赖于第二个静态库lib2.a;通过将两个库与main
函数链接来创建可执行文件。除非您手动“合并”这两个库,否则每次要使用lib1.a时,您还需要链接lib2.a。
这可以在Xcode中轻松检查。
对于头文件,您还需要包含两个库的头文件。
答案 1 :(得分:0)
将一个静态库链接到另一个静态库时,只需将生成的组合静态库与应用程序链接即可。您需要包含为库定义 public 接口的标头,以及应用程序中第三方库的标头。您的库或第三方使用的任何框架都必须与应用程序链接。