我有一个案例,其中有两个库 lib1 和 lib2。 lib2 依赖于 lib1。在我的例子中,lib2 基本上是 lib1 中函数的高级包装器。 最终的应用程序将通过包含相关的头文件来使用 lib2 中的函数。 如何静态构建库并将它们链接到最终程序?
最佳答案
静态库只是对象 (.o
) 文件的存档,因此您不能嵌入依赖信息。类似 ar cr lib1.a foo.o bar.o [more object files]
的内容将构建您的库。
因为没有依赖信息,您的主程序必须链接两个 库并且链接lib1
之后 很重要lib2
当 lib2
依赖于 lib1
时(否则链接器将找不到 lib2
中未解析的符号)。因此,链接步骤可能如下所示(假设您使用 gcc
并且您的库位于当前目录中):
gcc -otest main.o -L. -Wl,-Bstatic -l2 -l1
关于c - 构建依赖于另一个静态库的静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521710/