gcc嵌套库和链接器依赖项

时间:2013-10-11 10:48:30

标签: linker dependencies nested

情况:

  • 我有一个静态库" lib1.a" ;
  • 第二个静态库" lib2.a"使用" lib1.a";
  • 的功能
  • 直接使用" lib2.a"。
  • 的功能的应用程序

当我链接应用程序时,我必须传递给应用程序依赖项" lib1.a"即使应用程序没有直接调用lib1函数也没有。 Lib2是一种更高级别的包装库。

有没有办法在lib2中链接lib1(一种中间链接),以便" app"甚至不知道lib1的存在?

我知道我可以压缩lib1.a并将对象文件包含在lib2.a中但是有另一种方法可以自动完成并且只有USED对象文件包含在lib2中吗?当您链接最终应用时,Linke。

{app} -uses-> {lib2} -uses-> {[lib1]}

干杯, 的Davide

1 个答案:

答案 0 :(得分:0)

  

还有另一种方式

不,没有(在我知道的任何类UNIX系统上)。

使用GNU - ldgold时,您可以做的最好的事情是将libcombined.a编写为包含-l2 -l1的链接描述文件,然后指向应用程序它。