riscv-gnu-toolchain是RISCV的交叉编译工具链,在GitHub上的地址为:https://github.com/riscv-collab/riscv-gnu-toolchain,在国内Gitee上也有链接,每天同步一次:https://gitee.com/mirrors/riscv-gnu-toolchain。
第一步就是下载交叉编译工具链:
git clone git@github.com:riscv/riscv-gnu-toolchain.git cdriscv-gnu-toolchain git submodule update --init --recursive第二步下载需要的库文件:(我是ubuntu的环境)
sudoapt-getinstallautoconfautomakeautotools-devcurllibmpc-devlibmpfr-devlibgmp-devgawkbuild-essentialbisonflextexinfogperflibtoolpatchutilsbczlib1g-devlibexpat-dev第三步设置环境变量:
exportRISCV="your path"//path指你自己下载的工具链的路径 exportPATH=$PATH:$RISCV/bin source/etc/profile//可以让关闭当前终端之后,设置的环境变量仍然有效第四步进行编译:
mkdirbuild//新建一个文件夹,让整个目录结构更清晰一点 cd build //生成32位的编译工具 riscv32-unknown-elf-*** ../configure --prefix=$RISCV --with-arch=rv32gc --with-abi=ilp32d make -j4 //64位的 riscv64-unknown-elf-*** ../configure --prefix=$RISCV make -j4 //64位的linux-gnu-gcc版本 ../configure --prefix=$RISCV make linux -j4以上按位数分可以编译为32位和64位两种,另外就是都可以编译为elf版本和linux版本。
这个时候,你的交叉编译工具链就做好了。那就写个hello world来测试下吧。
正常编译出来hello.o了。
因为是在ubuntu的环境下,我们是不能直接执行这个a.o的,因为他是riscv的交叉编译工具编译出来的。下面就安装一下qemu这个运行环境吧。
git clone https://git.qemu.org/git/qemu.git cd qemu git submodule init git submodule update --recursiveriscv的qemu有两种:
用户模式,可以运行基于riscv指令集编译的程序文件(target-list=riscv32-linux-user,target-list=riscv64-linux-user)
镜像模拟器,可以运行基于riscv指令集编译的linux镜像(target-list=riscv32-softmmu,target-list=riscv64-softmmu)
因为我上面交叉编译工具链就是32位的,所以qemu也使用32位的,这里要对应上,不然在qemu里面运行编译好的结果的会报错的。
cd qemu ./configure--target-list=riscv32-linux-user make-j4这个在编译的时候可能会报错,少库啥的。 比如:
ERROR:CannotfindNinja //报上面这个错误可以通过 apt-get install ninja-build 解决 ERROR: glib-2.48 gthread-2.0 is required to compile QEMU //报上面这个错误可以通过 apt-get install libglib2.0-dev 解决总之一个原则:少啥装啥。 下图就是编译好的,注意里面的路径,我们需要qemu-riscv32这个去执行工具链编译好的二进制文件。这里可以像上面一样把他也放进环境变量里面,我们以后用起来会比较方便,不用每次都写qemu-riscv32的路径了。
最后就来看一下执行结果吧:
至此,RISCV的编译和运行环境就弄好了。
-
Linux
+关注
关注
87文章
11116浏览量
207752 -
Ubuntu
+关注
关注
5文章
549浏览量
29265 -
环境搭建
+关注
关注
0文章
53浏览量
9027 -
RISC-V
+关注
关注
44文章
2131浏览量
45651
原文标题:RISC-V编译环境搭建
文章出处:【微信号:FPGA开源工坊,微信公众号:FPGA开源工坊】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
RISC-V MCU开发 (一):集成开发环境
![<b class='flag-5'>RISC-V</b> MCU开发 (一):集成开发<b class='flag-5'>环境</b>](https://file.elecfans.com//web2/M00/15/A5/poYBAGFMHkOAere8AAYfUmflICg821.png)
RISC-V开发分析 CSM32RV20开发板环境搭建
![<b class='flag-5'>RISC-V</b>开发分析 CSM32RV20开发板<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com//web2/M00/33/2C/pYYBAGIct9qAHO8vAAdAzX5ISKA570.png)
risc-v单片机使用分享
RISC-V单片机快速入门01-开发环境搭建 相关资料下载
RISC-V MCU开发 (一):集成开发环境
【基于CH32V307VCT6】如何搭建RISC-V的开发环境
目前RISC-V都支持哪些开发环境?
RISC-V嵌入式开发准备篇1:编译过程简介
![<b class='flag-5'>RISC-V</b>嵌入式开发准备篇1:<b class='flag-5'>编译</b>过程简介](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RISC-V单片机快速入门01-开发环境搭建
![<b class='flag-5'>RISC-V</b>单片机快速入门01-开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RISC-V MCU CSM32RV20开发(一):环境搭建
![<b class='flag-5'>RISC-V</b> MCU CSM32RV20开发(一):<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
评论