【问题标题】:gcc nested libraries and linker dependenciesgcc 嵌套库和链接器依赖项
【发布时间】:2013-10-11 10:48:30
【问题描述】:

情况:

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

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

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

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

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

干杯, 大卫

【问题讨论】:

    标签: linker dependencies nested


    【解决方案1】:

    还有其他方法吗

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

    在使用 GNU-ldgold 时,您可以做的最好的事情是编写一个 libcombined.a 作为链接脚本,其中包含 -l2 -l1,并将应用程序指向它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 2018-06-14
      • 2011-01-18
      相关资源
      最近更新 更多