XV6 在尝试在 Windows 上制作 xv6 时"unrecognised emulation mode: -N"文件问题


$ make qemu-nox
ld -m  -N -e main -Ttext 0 -o _cat cat.o ulib.o usys.o printf.o umalloc.o
C:MinGWbinld.exe: unrecognised emulation mode: -N
Supported emulations: i386pe
make: *** [_cat] Error 1

尽管我已经安装了QEMU,并遵循了以下指南一步一步:其他SO问题,但我仍然会收到这个错误。

关于如何使这项工作发挥作用,有什么建议吗?

似乎一行的行为符合要求:

LDFLAGS += -m $(shell $(LD) -V | grep elf_i386 2>/dev/null | head -n 1)

正如您所看到的,这一行构建了ld的命令行,并尝试为elf启用仿真模式(-m(。

您的ld似乎不支持这种可执行文件。

那么,你能做什么呢?

  • 您可以尝试删除LDFLAGS以使用默认模拟模式(i386pe(,但我认为它不起作用
  • 您可以安装支持elf二进制文件的ld版本。一旦您安装了它,您肯定会有一个名为i386-elf-ld的可执行文件,如果是这样,请使用TOOLPREFIX=i386-elf- make qemu-nox启动您的构建

最新更新