shell - 编译 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 系统)
解决方案
你应该检查这个链接:https ://pdos.csail.mit.edu/6.828/2019/tools.html
对我来说,我正在运行 ubuntu,所以我自己编译了工具链,然后它就可以工作了
推荐阅读
- python-sphinx - 将版本动态插入标题
- php - 如何保护 svg 文件?
- django - 多个搜索字段未按预期工作
- google-analytics - 是否有一个选项来跟踪(目标)ajax表单,复选框可以逐屏工作?
- android - 当我只有一个可选的上下文时,如何创建一个意图?
- java - 为什么我在推送到 Git Android Studio 时出错?
- .net - ODP.Net Unmanged x64 导致未处理的异常
- python - 尝试为 paramiko SSHClient 指定密钥,错误:无法反序列化密钥数据
- c - 确认消息已使用 socketCAN 发送到 CAN 总线
- r - 添加第二个 y 轴作为第一个 x 和 y 轴的公式