0

情况:

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

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

有没有办法在 lib2 中链接 lib1(一种中间链接),以便“应用程序”甚至不知道 lib1 的存在?

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

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

干杯,戴维德

4

1 回答 1

1

还有其他方法吗

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

ld使用 GNU-或时,您能做的最好的事情gold就是将 alibcombined.a作为链接描述文件编写,包含-l2 -l1并将应用程序指向它。

于 2013-10-12T02:30:26.563 回答