代码之家  ›  专栏  ›  技术社区  ›  lz96

使用ld.gold将静态库直接链接到可执行文件中

  •  1
  • lz96  · 技术社区  · 6 年前

    我有一个 libfoo.a 其中包含 _start 以及可执行文件所需的所有符号。 ld.bfd -o foo libfoo.a 在我的情况下工作顺利。然而, ld.gold -o foo libfoo.a 在没有符号的情况下自动生成可执行文件失败 利伯沃 . 创建一个空的 a.o 并将其与 ld.gold -o foo a.o libfoo.a 作品。

    我想知道是否有任何方法可以使用 ld.gold 不创建冗余的空对象文件?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Cary Coutant    6 年前

    您可以使用 -e _start 选项,链接器将使用它来决定它需要加载定义它的对象。

    不幸的是,gold不会使用隐式开始符号从存档库加载对象。