链接脚本(/usr/lib/libc.so.1: bad ELF interpreter)
这是自己写的一个链接脚本,保存为ld.script
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(Test)
SEARCH_DIR("/usr/local/i686-pc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
SECTIONS{
. = 0x08048000;
.text :{ *(.text) *(.rdata) }
.data :{*(.data)}
.bss :{ *(.bss)}
.interp : { *(.interp) }
/DISCARD/ : { *(.comment)}
}
在链接的时候:
ld -T ld.script -o t t.o -lc
执行时出错:
bash: ./t: /usr/lib/libc.so.1: bad ELF interpreter: No such file or directory
查看信息
readelf -l t
发现,interpreter变成了/usr/lib/libc.so.1:
INTERP 0x001118 0x08048118 0x08048118 0x00013 0x00013 R 0x1
[Requesting program interpreter: /usr/lib/libc.so.1]
正常情况应该是:
/lib/ld-linux.so.2
请问为什么会变成/usr/lib/libc.so.1?
如何修改?