ld:找不到文件:Mac 终端上出现 elf_i386 错误

Chi*_*sal 5 terminal gcc gnu elf linker-errors

当我在终端中运行命令时(使用 El Capitan)

ld -m elf_i386 -T linker.ld -o kernel kasm.o kc.o
Run Code Online (Sandbox Code Playgroud)

它显示以下错误:

ld: warning: option -m is obsolete and being ignored
ld: file not found: elf_i386
Run Code Online (Sandbox Code Playgroud)

有人能帮我解决这个问题吗?

Emp*_*ian 5

当我在终端中运行命令时

您正在尝试直接使用链接某种内核ldld这实际上是极少数适合直接使用的情况之一。

但是,您给出的命令行参数ld假设您正在使用 GNU-ld (您可能已从 Linux 教程中复制了它们),但您没有使用GNU-ld,您正在使用 MacOS 本机链接器,它无法理解这些论点。

有人能帮我解决这个问题吗?

请提出一个单独的问题,类似于“我正在尝试在 MacOS 上构建 XXX,遵循教程 YYY,并且不明白如何将此 Linux 命令调整到 Mac OS”。

请注意,可能根本无法在 MacOS 上构建 XXX。特别是,ld 手册页没有提到ELF可能的输出,因此如果您的“构建 XXX”目标包括构建 ELF 内核,您可能需要构建一个交叉链接器(在 Mac OS 上运行的 GNU-ld 链接器(即托管在 Mac OS 上),但为ELF目标生成代码。