【发布时间】:2016-08-07 13:34:23
【问题描述】:
我正在尝试创建尽可能小的 ELF。我创建了一个这样的测试文件(NASM 语法):
SECTION .text
dd 0xdeadbeef
使用此链接器脚本:
SECTIONS {
.text : {
*(.text)
}
}
然后我检查了平面二进制文件的大小,并以两种方式构建了 ELF:
nasm -f bin -o test test.asm
它是平面二进制,所以 4 个字节。
nasm -f elf -o test.o test.asm
i686-elf-ld -Tlinker.ld test.o -o test
我希望最大为 500 字节,但生成的文件长度为 4396 字节!但是,有一个名为 --strip-all 的选项可以使这个文件更小。
i686-elf-ld -Tlinker.ld test.o -o test --strip-all
4244 字节。仍然很大。
为什么 LD 会生成这么大的文件?有没有办法让它变小?
【问题讨论】:
标签: ld compiler-optimization binutils