千家信息网

如何搭建RISC-V编译环境与运行环境

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,如何搭建RISC-V编译环境与运行环境,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们现在芯片被美国卡脖子,所以RIS
千家信息网最后更新 2025年12月01日如何搭建RISC-V编译环境与运行环境

如何搭建RISC-V编译环境与运行环境,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我们现在芯片被美国卡脖子,所以RISC-V是大势所趋。华为鸿蒙提供的编译器(https://repo.huaweicloud.com/harmonyos/compiler/)里也有RISC-V。虽然现在硬件资源比较少,但是通过软件模拟环境,可以提早做好准备。

RISC-V GNU Toolchain

源码获取

要体验RISC-V,首先需要安装交叉编译器。然而国内的网络很差,想要在GitHub上拿到源码(https://github.com/riscv/riscv-gnu-toolchain)编译非常困难。比较庆幸的是Gitee上有镜像(https://gitee.com/mirrors/riscv-gnu-toolchain),每天同步一次。

获取源码:

git clone https://gitee.com/mirrors/riscv-gnu-toolchain.gitcd riscv-gnu-toolchaingit submodule update --init --recursive

然而在我通过Gitee拿代码的时候,子模块下载速度依然非常慢,特别是QEMU里的一个子模块。于是我把QEMU从同步中删除了,因为不影响编译:

git rm --cached QEMUgit submodule update --init --recursive

考虑到下载速度,我把拿到的所有代码放到Gitee上(https://gitee.com/yushulx/riscv-gnu-toolchain)。这个代码库不做更新,只提供给网络差,又需要体验RISC-V的人。需要拿最新代码就去GitHub或者Gitee镜像。

编译安装

接下来就按照官方教程编译。

依赖工具

Ubuntu

$ sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev

Fedora/CentOS/RHEL OS

$ sudo yum install autoconf automake python3 libmpc-devel mpfr-devel gmp-devel gawk  bison flex texinfo patchutils gcc gcc-c++ zlib-devel expat-devel

Arch Linux

$ pacman -Syyu autoconf automake curl python3 mpc mpfr gmp gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib expat

OS X

$ brew install python3 gawk gnu-sed gmp mpfr libmpc isl zlib expat
编译GCC

编译riscv64-unknown-elf-gcc:

./configure --prefix=/opt/riscvsudo make

编译64-bitriscv64-unknown-linux-gnu-gcc:

./configure --prefix=/opt/riscvsudo make linux

编译32-bit:

./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32dsudo make linux

编译32-bit和64-bit:

./configure --prefix=/opt/riscv --enable-multilibsudo make linux

这两个gcc的区别在于,elf-gcc是静态链接,linux-gnu-gcc是动态链接。

RISC-V运行环境

Simulator和Emulator的不同之处在于Emulator提供的是一个完整的模拟环境。

Simulator

首先编译安装pk: https://github.com/riscv/riscv-pk。

然后编译安装spike:https://github.com/riscv/riscv-isa-sim

编译程序

riscv64-unknown-elf-gcc -o hello hello.c

运行

spike $(which pk) hello

注意,如果用riscv64-unknown-linux-gnu-gcc编译,运行会报错:

bbl loadernot a statically linked ELF program

Emulator

下载安装QEMU https://www.qemu.org/download/#source

参考教程运行模拟环境:https://wiki.qemu.org/Documentation/Platforms/RISCV

另外也可以使用tinyemu: https://bellard.org/tinyemu/

Fedora镜像获取:https://dl.fedoraproject.org/pub/alt/risc-v/repo/virt-builder-images/images/

解压镜像:

unxz Fedora-Minimal-Rawhide-*-sda.raw.xz

启动模拟器:

 qemu-system-riscv64 \   -nographic \   -machine virt \   -smp 4 \   -m 2G \   -kernel Fedora-Minimal-Rawhide-*-fw_payload-uboot-qemu-virt-smode.elf \   -bios none \   -object rng-random,filename=/dev/urandom,id=rng0 \   -device virtio-rng-device,rng=rng0 \   -device virtio-blk-device,drive=hd0 \   -drive file=Fedora-Minimal-Rawhide-20200108.n.0-sda.raw,format=raw,id=hd0 \   -device virtio-net-device,netdev=usernet \   -netdev user,id=usernet,hostfwd=tcp::10000-:22

登录用户名riscv,密码fedora_rocks!

拷贝程序到模拟器中:

scp @:/ ./

在模拟器环境中可以正常运行riscv64-unknown-elf-gccriscv64-unknown-linux-gnu-gcc编译出来的程序。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

编译 环境 运行 代码 镜像 模拟器 源码 程序 教程 模块 编译器 网络 速度 链接 体验 同步 帮助 不同 清楚 困难 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器自动修复软件 网络安全自律方案 浙江营销网络技术管理系统 计算机网络安全职业分析 云计算服务器租用是做什么的 教育行业软件开发 滁州网络安全考试费用 vs怎么添加窗体连接数据库 江苏移动家客网络技术支撑 网络安全模式下控制面板 自贡软件开发公司 江西微商系统软件开发 筛选不连续的数据库 大数据专业和软件开发专业区别 山西宇智互联网科技有限公司 服务器无法连接的专业术语 从网络安全角度出发英文怎么写 临沂尚帝网络技术服务 网络技术公司实习会计的基础内容 精灵起源服务器客服端怎么进去 安全专业包含网络安全吗 纳税信用评级数据库 基线网络安全标准 关于数据库的调查问卷 疫情期间网络安全保障网络教学 汉中ar软件开发哪里好 网络安全行业主管 码软件开发 哈利波特忘了自己在哪个服务器 阿里云数据库按量付费怎么关闭
0