我使用指南Tools Used in 6.828准备工具链。
在运行lab1
:
当我将下面的代码注释掉memset()
和monitor()
时,它只会运行,但键盘不起作用:
工具链
gcc版本6.4.0 20170724(Debian 6.4.0-2)
GNU汇编程序(GNU Binutils for Debian)2.29
GNU ld(GNU Binutils for Debian)2.29
实验室
QEMU
我将我编译的内核与其他内核进行比较。我发现内核的elf格式有更多部分。比如.got
,.got.plt
,只是图片中的Idx 5 6 7 8
enter image description here
我认为必须有工具链的错。我可以用新版本的gcc做这个实验室,我该怎么做才能解决这个问题?感谢
答案 0 :(得分:2)
好的,现在我做到了。
与xv6的makefile相比,我发现lab1的GNUmake文件中没有gcc选项。
所以在GNUMakefile
中将-no-pic
添加到CFLAGS
那将会完成。
我将通过电子邮件发送给6.828的工作人员。当他们更改文件时,我将删除此问题。