过程记录:编译一个 RISC-V 工具链
本文记录了作者编译 RISC-V 工具链的过程。其实作为一个嵌入式软件攻城狮只需要使用芯片厂商提供的工具链就好了。但是生命在于折腾!
首先给大家看一下我的开发环境,电脑配置。15年的笔记本有点渣,整个编译过程共计耗时 70 分钟!
1. 首先是下载源码。
git clone https://github.com/riscv/riscv-gnu-toolchain
2. 进入刚刚下载好的源码目录中更新子模块目录。输入命令如下:
git submodule update --init --recursive
3. 给自己的 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
4. 提前添加环境变量。
假设你打算把工具链安装目录在 /opt/riscv
里。输入命令如下:
export PATH=/opt/riscv/bin:$PATH
5. 这边的话我选择的是构建同时支持32位和64位的Linux交叉编译器。所以输入命令如下:
./configure --prefix=/opt/riscv --enable-multilib
6. 开始编译。输入命令如下:
sudo make linux -j4
7. 最后测试一下工具链好不好用!
输入如下命令打印版本信息:
riscv64-unknown-linux-gnu-gcc -v
编写一个 hello.c 文件,内容如下:
1 |
|
输入如下命令编译 hello.c :
riscv64-unknown-linux-gnu-gcc -o hello hello.c