强制GNU链接器生成32位ELF可执行文件

嗨,我目前正在为我正在编写的编译器生成x86程序集,并且在将文件链接到我的64位VM(程序集代码为32位)时遇到一些麻烦。

我可以使用以下命令很好地汇编目标文件:

as --32 mult.S -o mult.o

但我似乎找不到任何ld使它生成32位ELF文件的选项:

ld <some-option?> mult.o -o mult

任何帮助都会很棒。

回答:

ld <some-option?> mult.o -o mult

ld -m elf_i386 mult.o -o mult

您可以通过以下方式获得可用架构的列表:

ld -V

样本输出:

GNU ld (GNU Binutils for Ubuntu) 2.24

Supported emulations:

elf_x86_64

elf32_x86_64

elf_i386

i386linux

elf_l1om

elf_k1om

i386pep

i386pe

但是,这不是必须的:ld查看第一个对象,并应根据该对象的格式自动选择仿真。

以上是 强制GNU链接器生成32位ELF可执行文件 的全部内容, 来源链接: utcz.com/qa/415780.html

回到顶部