当我在终端中运行命令时(使用El Capitan)
ld -m elf_i386 -T linker.ld -o kernel kasm.o kc.o
它显示以下错误:
ld: warning: option -m is obsolete and being ignored
ld: file not found: elf_i386
有人可以帮我吗?
答案 0 :(得分:1)
当我在终端
中运行命令时
您正尝试直接使用ld
链接某种内核。这实际上是少数直接使用ld
的情况之一。
但是,您给ld
的命令行参数假设您使用的是GNU-ld(您可能已经从Linux教程中复制过它们),但是不使用GNU -ld,您使用的是MacOS本地链接器,它不了解这些参数。
有人可以帮我吗?
请问一个单独的问题,按照"我正在尝试在MacOS上构建XXX,遵循教程YYY,并且不了解如何将此Linux命令调整到Mac OS"。
请注意,可能无法在MacOS上构建XXX。特别是,ld manpage并未提及ELF
作为可能的输出,因此如果您的"构建XXX"目标包括构建ELF内核,您可能需要构建交叉链接器(在Mac OS上运行的GNU-ld链接器(即托管在Mac OS上),但为ELF
目标生成代码。