当前位置: 首页 > 面试题库 >

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

胡光霁
2023-03-14
问题内容

嗨,我目前正在为我正在编写的编译器生成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查看第一个对象,并应根据该对象的格式自动选择仿真。



 类似资料:
  • 问题内容: 我正在使用Ubuntu 13.04,并使用安装了mingw-w64 。我可以使用以下命令来编译和链接程序的64位工作版本: 生成一个64位的 app.exe 文件。 我使用哪些二进制或命令行标志来生成32位版本的app.exe? 问题答案: 这取决于您当前正在使用哪种工具链。既 DWARF 和_SEH_变体(它们来自GCC4.8.0开始)仅单一目标。您可以通过检查其发行版的目录结构来自

  • 我编写了成功编译的汇编代码: 但是,当我尝试链接对象文件时,它失败了: 为了在64位操作系统(Ubuntu 14.04)上运行,我添加了<代码>。code32在电源的开头。s文件,但我仍然得到错误: 分段故障(堆芯倾倒) 电源:

  • 问题内容: 我有一台新的64位Windows计算机,并且将python用于各种用途,因此希望安装64位python。 但是,我的一个python项目创建了一个Windows可执行文件,然后在32位Windows计算机(使用py2exe创建)上运行。 如何使用64位python和py2exe创建32位可执行文件? 如果我做不到,我想我的选择是: 在包括我的所有机器上使用32位python;要么 在3

  • 本文向大家介绍Go编译32位GNU静态链接库的方法,包括了Go编译32位GNU静态链接库的方法的使用技巧和注意事项,需要的朋友参考一下 Go链接库系统的难用可谓是人尽皆知,不同Go版本编译出来的不兼容,而且只支持GNU的,不能编译出Windows上的dll和lib。 本次有需求是将Go代码编译成32位GNU静态链接库。 Go代码 编写代码如下: 注意我们必须把想要导出的函数显式使用//export

  • 我使用的是spring-boot:1.3.3、spring-hateoas:0.19.0和spring-data-rest-core:2.4.4。 这是Spring-Hateoas提供的内容的例子。过了一段时间,我将我的应用程序切换到SSL。

  • 问题内容: 我在XP上使用python 2.6。我刚刚安装了py2exe,并且可以从hello.py成功创建一个简单的hello.exe。但是,当我尝试在实际程序上使用py2exe时,py2exe会生成一些信息消息,但无法在dist文件夹中生成任何内容。 我的setup.py看起来像这样: 和py2exe输出看起来像这样: py2exe似乎已经找到了我的所有导入文件(尽管看到win32时我感到有些