Tri*_*uah 4 c static-libraries unix-ar static-linking
我有一个案例,其中有两个库lib1和lib2.lib2依赖于lib1.在我的例子中,lib2基本上是围绕lib1内部函数的高级包装器.最终的应用程序只是通过包含相关的头来使用lib2中的函数.如何静态构建库并将它们链接到最终程序?
小智 9
静态库只是object(.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
Run Code Online (Sandbox Code Playgroud)