Link 使用 ld.gold 将静态库直接转换为可执行文件
Link static library directly into an executable using ld.gold
我有一个 libfoo.a
,其中包含 _start
和可执行文件所需的所有符号。 ld.bfd -o foo libfoo.a
在我的情况下工作顺利。但是,ld.gold -o foo libfoo.a
无法静默生成不带来自 libfoo.a
符号的可执行文件。用 ld.gold -o foo a.o libfoo.a
创建一个空的 a.o
和 link 是可行的。
我想知道是否有任何方法可以使用 ld.gold
将静态库直接 link 转换为可执行文件而不创建多余的空对象文件?
您可以使用 -e _start
选项显式指定入口符号,链接器将使用它来决定是否需要加载定义它的对象。
遗憾的是,gold 不会使用隐式开始符号从存档库中加载对象。
我有一个 libfoo.a
,其中包含 _start
和可执行文件所需的所有符号。 ld.bfd -o foo libfoo.a
在我的情况下工作顺利。但是,ld.gold -o foo libfoo.a
无法静默生成不带来自 libfoo.a
符号的可执行文件。用 ld.gold -o foo a.o libfoo.a
创建一个空的 a.o
和 link 是可行的。
我想知道是否有任何方法可以使用 ld.gold
将静态库直接 link 转换为可执行文件而不创建多余的空对象文件?
您可以使用 -e _start
选项显式指定入口符号,链接器将使用它来决定是否需要加载定义它的对象。
遗憾的是,gold 不会使用隐式开始符号从存档库中加载对象。