Моя операционная система - Ubuntu 18.4, и когда я пытаюсь создать код, указанный учителем, я получаю следующее:
root@ArcherJo:~/ucore_os_lab/labcodes_answer/lab1_result# make lab1-mon
/bin/sh: 1: gnome-terminal: not found
Makefile:202: recipe for target 'lab1-mon' failed
make: *** [lab1-mon] Error 127
Найдите соответствующую строку Makefile
201 lab1-mon: $(UCOREIMG)
202 $(V)$(TERMINAL) -e "$(QEMU) -S -s -d in_asm -D $(BINDIR)/q.log -monitor stdio -hda $< -serial null"
203 $(V)sleep 2
204 $(V)$(TERMINAL) -e "gdb -q -x tools/lab1init"
...
217 TERMINAL :=gnome-terminal
Тогда я понял, что это может быть потому, что моя система не имеет графического интерфейса, что означает, что я не могу использовать gnome-terminal
, чтобы открыть новый терминал.
Так, какие улучшения я должен сделать, чтобы достичь подобных результатов?
Поскольку Makefile слишком длинный, позвольте мне обрисовать фон. Это экспериментальный курс по ОС. Мы используем qemu для аппаратного моделирования, а затем запускаем на нем свою собственную ОС.
Вот еще немного кода, который, я думаю, вам может понадобиться.
25 ifndef QEMU
26 QEMU := $(shell if which qemu-system-i386 > /dev/null; \
27 then echo 'qemu-system-i386'; exit; \
28 elif which i386-elf-qemu > /dev/null; \
29 then echo 'i386-elf-qemu'; exit; \
30 else \
31 echo "***" 1>&2; \
32 echo "*** Error: Couldn't find a working QEMU executable." 1>&2; \
33 echo "*** Is the directory containing the qemu binary in your PATH" 1>&2; \
34 echo "***" 1>&2; exit 1; fi)
35 endif
...
71 BINDIR := bin
...
170 UCOREIMG := $(call totarget,ucore.img)