营销型网站外包,利用国外免费空间做网站,思南县住房和城乡建设局网站,黑龙江建筑施工管理平台前言
因为公司项目代码需要在RISCV环境下测试#xff0c;因为没有硬件实体#xff0c;所以在Ubuntu 18.04上搭建了riscv-gnu-toolchain QEMU模拟器环境。
安装riscv-gnu-toolchain
riscv-gnu-toolchain可以从GitHub上下载源码编译#xff0c;地址为#xff1a;https://…前言
因为公司项目代码需要在RISCV环境下测试因为没有硬件实体所以在Ubuntu 18.04上搭建了riscv-gnu-toolchain QEMU模拟器环境。
安装riscv-gnu-toolchain
riscv-gnu-toolchain可以从GitHub上下载源码编译地址为https://github.com/riscv-collab/riscv-gnu-toolchain。 首先将项目克隆到本地
git clone https://github.com/riscv/riscv-gnu-toolchain在编译前需要实现安装些依赖项目
$ sudo apt-get install autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build git cmake libglib2.0-dev创建riscv文件夹存放编译后的toolchain需要写入权限例如
sudo mkdir /opt/riscv
sudo chmod 777 /opt/riscv然后可以在克隆下的riscv-gnu-toolchain文件夹里创建buid文件夹进行编译过程花很多时间需要耐心等待
cd riscv-gnu-toolchain
mkdir build
cd build
../configure --prefix/opt/riscv --enable-multilib
make linux 完成后就能在/opt/riscv/bin文件夹下看到如下内容 然后配置bashrc在bashrc中添加路径
export PATH$PATH:/opt/riscv/bin接下来就能测试下riscv gcc的编译创建一个hello.c文件内容如下
#include stdio.hvoid main() {printf(%s\n,hello RISCV);
}然后编译
riscv64-unknown-linux-gnu-gcc hello.c -o hello编译无报错生成可执行文件是无法直接运行的加下来需要安装QEMU。
安装QEMU
riscv-gnu-toolchain文件夹里也有个qmeu的文件夹根据.gitmodules里的内容 我们也可以从GitLab上下载QEMU的源码进行编译同样做些准备工作
git clone https://gitlab.com/qemu-project/qemu.gitsudo mkdir /opt/qemu
sudo chmod 777 /opt/qemuGitLab直接克隆下的master分支应该是最新版本8.2.0版本的这里博主就遇到了一个坑先在riscv-gnu-toolchain/qemu创建build目录然后运行
cd build
../configure --prefix/opt/qemu
make
make install结果在configure的时候有一些报错例如下面的要使用python3.8要安装python模块的等 解决方法
sudo apt install python3.8
pip install distlib
sudo ln -sf /usr/bin/pyhton3.8 /usr/bin/pyhton费了好大劲解决了配置问题结果编译没有通过。用git branch -a命令查看发现QEMU还有其他stable的分支 然后果断用下面命令切换到了stable-7.2分支
git checkout stable-7.2然后重新configure和编译编译成功然后我们就能在/opt/qemu/bin下看到 然后配置bashrc在bashrc中添加
export PATH$PATH:/opt/qemu/bin
export QEMU_LD_PREFIX/opt/riscv/sysroot # 否则qemu-riscv64会在/lib下搜索riscv64的动态链接source bashrc之后我们就可以运行原来编译出的hello程序
qemu-riscv64 hello