【发布时间】:2019-12-23 16:26:48
【问题描述】:
当尝试使用 -melf_i386 选项运行 ld 命令时,我收到此错误:
ld -melf_i386 helloWorld.o -o hello
ld: unknown option: -melf_i386
此选项在 Linux 上有效。 我该如何解决这个问题?
【问题讨论】:
-
尝试添加一个空格,例如
-m elf_i386
当尝试使用 -melf_i386 选项运行 ld 命令时,我收到此错误:
ld -melf_i386 helloWorld.o -o hello
ld: unknown option: -melf_i386
此选项在 Linux 上有效。 我该如何解决这个问题?
【问题讨论】:
-m elf_i386
你不能。 macOS 不支持 ELF 二进制文件,其链接器也不支持 ELF 输出。因此,-melf_i386 选项不存在。 (事实上,用于选择仿真的整个 -m 选项也不存在;macOS 处理子架构的方式与 Linux 完全不同。)
如果您尝试为 Linux 系统创建 ELF 二进制文件,则需要安装交叉编译工具链。我不知道为此目的有任何预构建的工具链;大多数针对 Linux 系统的开发人员不会在 macOS 上编译软件。更可行的选择可能是 Linux 虚拟机。
如果您尝试创建一个 ELF 二进制文件以在 macOS 系统上运行,那么您就不走运了。这是不可能的。
如果您尝试学习汇编编程教程,请注意 macOS 系统调用接口与 Linux 上的系统调用接口不兼容。使用 Linux 系统(或虚拟机)学习本教程。
【讨论】: