ld: OS X 上的未知选项 -melf_i386

ld: unknown option -melf_i386 on OS X

当尝试 运行 带有 -melf_i386 选项的 ld 命令时,我得到这个错误:

ld -melf_i386 helloWorld.o -o hello
ld: unknown option: -melf_i386

此选项适用于 Linux。 我该如何解决这个问题?

你不能。 macOS 不支持 ELF 二进制文件,其链接器也不支持 ELF 输出。因此,-melf_i386 选项不存在。 (实际上,用于选择仿真的整个 -m 选项也不存在;macOS 处理子架构的方式与 Linux 完全不同。)

如果您尝试为 Linux 系统创建 ELF 二进制文件,则需要安装交叉编译工具链。我不知道有任何用于此目的的预构建工具链;大多数针对 Linux 系统的开发人员不会在 macOS 上编译软件。更可行的选择可能是 Linux 虚拟机。

如果你试图在 macOS 系统上创建一个 ELF 二进制文件到 运行,那你就不走运了。那是不可能的。

如果您正在尝试学习汇编编程教程,请注意 macOS 系统调用接口 与 Linux 上的兼容。使用 Linux 系统(或虚拟机)来学习本教程。