首页 > 解决方案 > 编译 xv6 代码但在汇编指令上给出错误

问题描述

我通过使用“Linux 的 Windows 子系统”在 Windows 10 下使用 Ubuntu 18.04.2 LTS。我在使用 XV6 时遇到了一些问题。

我使用以下命令设置 XV6:

git clone git://pdos.csail.mit.edu/xv6/xv6.git
sudo apt-get install libc6-dev
chmod 700 -R xv6-riscv

但是当我输入make命令时,我遇到了以下问题:

***
*** Error: Couldn't find an riscv64 version of GCC/binutils.
*** To turn off this error, run 'gmake TOOLPREFIX= ...'.
***
gcc    -c -o kernel/entry.o kernel/entry.S
kernel/entry.S: Assembler messages:
kernel/entry.S:17: Error: no such instruction: `la sp,stack0'
kernel/entry.S:18: Error: no such instruction: `li a0,1024*4'
kernel/entry.S:19: Error: no such instruction: `csrr a1,mhartid'
kernel/entry.S:20: Error: no such instruction: `addi a1,a1,1'
kernel/entry.S:21: Error: too many memory references for `mul'
kernel/entry.S:22: Error: too many memory references for `add'
kernel/entry.S:26: Error: no such instruction: `j junk'
<builtin>: recipe for target 'kernel/entry.o' failed
make: *** [kernel/entry.o] Error 1

谁能帮我这个?(我使用的是 x64 系统)

标签: shell

解决方案


你应该检查这个链接:https ://pdos.csail.mit.edu/6.828/2019/tools.html

对我来说,我正在运行 ubuntu,所以我自己编译了工具链,然后它就可以工作了


推荐阅读