【问题标题】:Link static library directly into an executable using ld.gold使用 ld.gold 将静态库直接链接到可执行文件
【发布时间】:2018-12-28 16:42:34
【问题描述】:

我有一个libfoo.a,其中包含_start 和可执行文件的所有必需符号。 ld.bfd -o foo libfoo.a 在我的情况下工作顺利。但是,ld.gold -o foo libfoo.a 无法从libfoo.a 静默生成没有符号的可执行文件。创建一个空的a.o 并将其与ld.gold -o foo a.o libfoo.a 链接可以工作。

我想知道有没有办法使用ld.gold 直接将静态库链接到可执行文件中,而无需创建冗余的空目标文件?

【问题讨论】:

    标签: linker static-libraries elf gold-linker


    【解决方案1】:

    您可以使用-e _start 选项显式指定入口符号,链接器将使用它来决定是否需要加载定义它的对象。

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

    【讨论】:

    • 实际上,如果没有明确的入口符号,它实际上是有一个很好的理由:入口符号是依赖于目标的,而黄金在我们看到之前不知道目标是什么第一个目标文件。
    猜你喜欢
    • 2015-04-16
    • 2013-06-24
    • 2010-12-07
    • 1970-01-01
    • 2011-06-07
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多