提问人:fjm 提问时间:5/19/2023 最后编辑:fjm 更新时间:6/2/2023 访问量:19
ld 脚本没有使用 INPUT 命令链接我的库中的对象
ld script does not link objects from my lib with INPUT command
问:
我有用于构建 x86 引导加载程序的小型链接器脚本。ld
OUTPUT_FORMAT(binary)
SECTIONS
{
. = 0x7c00;
.code :
{
* (.text)
* (.rodata)
}
. = 0x7c00 + 510;
.signature :
{
BYTE(0x55)
BYTE(0xAA)
}
}
STARTUP(crt0.o)
INPUT(-lfoo) /* This is not working. */
/* INPUT(foo.o)*/ /* This works, instead. */
我的程序引用了 中的符号,它是 的成员。
我尝试使用,这样我就不需要在命令行上传递。
但是,无法解析该符号,我收到此错误消息:bar
foo.o
libfoo.a
INPUT(-lfoo)
-lfoo
ld
ld
undefined reference to
酒吧'
它的唯一工作方式是,如果我注释该行并取消注释下一行,这将显式传递对象而不是静态库。INPUT(-lfoo)
INPUT(foo.o)
我隐约怀疑这与链接器处理参数的顺序有关,但我不确定。-l
有什么问题,在此示例中使用表单的解决方法(如果有)是什么?INPUT(-lfoo)
我尝试更改无济于事。
要么我必须在命令行传递,要么我需要将各个对象传递给 。INPUT()
GROUP()
-lfoo
ld
INPUT()
答: 暂无答案
下一个:Cmake 链接问题
评论