riscv-gnu-toolchain编译安装

Riscv-gnu-toolchain的编译以及安装

操作系统:Ubuntu20.04
Shell:zsh

参考文章:

  • https://blog.csdn.net/qq_42866646/article/details/108289683
  • https://www.codeleading.com/article/67025921158/#:~:text=%E5%A6%82%E6%9E%9C%E6%8A%A5%20ERROR%3A%20glib-2.48%20gthread-2.0%20is%20required%20to%20compile,not%20present.%20Please%20install%20the%20pixman%20devel%20package

从github上下载项目

git clone https://github.com/riscv/riscv-gnu-toolchain

如果下载速度太慢,可以从gitee下载。

git clone https://gitee.com/mirrors/riscv-gnu-toolchain.git

不建议使用git clone --recursive https://github.com/riscv/riscv-gnu-toolchain ,有些子项目的下载速度会很慢。

cd riscv-gnu-toolchain进入到项目文件夹(下面的所有操作都在此路径下执行),查看.gitmodules文件,里面列举了子模块的下载地址,分支,以及目标文件夹。

[submodule "riscv-binutils"]
        path = riscv-binutils
        url =  https://github.com/riscv-collab/riscv-binutils-gdb.git
        branch = riscv-binutils-2.36.1
[submodule "riscv-gcc"]
        path = riscv-gcc
        url = https://github.com/riscv-collab/riscv-gcc.git
        branch = riscv-gcc-10.2.0
[submodule "riscv-glibc"]
        path = riscv-glibc
        url = git://sourceware.org/git/glibc.git
[submodule "riscv-dejagnu"]
        path = riscv-dejagnu
        url = https://github.com/riscv-collab/riscv-dejagnu.git
        branch = riscv-dejagnu-1.6
[submodule "riscv-newlib"]
        path = riscv-newlib
        url = git://sourceware.org/git/newlib-cygwin.git
        branch = master
[submodule "riscv-gdb"]
        path = riscv-gdb
        url =  https://github.com/riscv-collab/riscv-binutils-gdb.git
        branch = fsf-gdb-10.1-with-sim
[submodule "qemu"]
        path = qemu
        url = https://git.qemu.org/git/qemu.git

可以将.gitmodules文件内容改成

[submodule "riscv-binutils"]
        path = riscv-binutils
        url =  https://gitee.com/mirrors/riscv-binutils-gdb.git
        branch = riscv-binutils-2.36.1
[submodule "riscv-gcc"]
        path = riscv-gcc
        url = https://gitee.com/mirrors/riscv-gcc.git
        branch = riscv-gcc-10.2.0
[submodule "riscv-glibc"]
        path = riscv-glibc
        url = git://sourceware.org/git/glibc.git
[submodule "riscv-dejagnu"]
        path = riscv-dejagnu
        url = https://gitee.com/mirrors/riscv-dejagnu.git
        branch = riscv-dejagnu-1.6
[submodule "riscv-newlib"]
        path = riscv-newlib
        url = git://sourceware.org/git/newlib-cygwin.git
        branch = master
[submodule "riscv-gdb"]
        path = riscv-gdb
        url =  https://gitee.com/mirrors/riscv-binutils-gdb.git
        branch = fsf-gdb-10.1-with-sim
[submodule "qemu"]
        path = qemu
        url = https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git

然后在riscv-gnu-toolchain的路径下执行git submodule update --init --recursive,会自动完成所有子模块的下载。中途可能有些比较大模块下载失败,因此我推荐多开几个终端,使用下面的命令分开下载。

其中qemu下载速度最慢,可以省略,去https://www.qemu.org/下载安装包即可。也可直接使用命令wget https://download.qemu.org/qemu-5.1.0.tar.xz下载

git clone -b riscv-binutils-2.36.1 https://gitee.com/mirrors/riscv-binutils-gdb.git ./riscv-binutils
git clone -b riscv-gcc-10.2.0 https://gitee.com/mirrors/riscv-gcc.git ./riscv-gcc
git clone git://sourceware.org/git/glibc.git ./riscv-glibc
git clone -b riscv-dejagnu-1.6 https://gitee.com/mirrors/riscv-dejagnu.git ./riscv-dejagnu
git clone git://sourceware.org/git/newlib-cygwin.git ./riscv-newlib
git clone -b fsf-gdb-10.1-with-sim https://gitee.com/mirrors/riscv-binutils-gdb.git ./riscv-gdb
git clone https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git ./qemu

如果有些比较大的模块下载失败,我的解决方法是增大git的下载缓存。

sudo git config --global http.postBuffer 524288000

查看git的配置

git config --list

下载编译项目用到的工具

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 -y

bash环境在用户目录下的.bashrc文件中添加下面的环境变量,zsh环境在用户目录下的.zshrc文件中添加下面的环境变量。

export RISCV="/opt/riscv-gnu-toolchain"
export PATH=$PATH:$RISCV/bin

我选择的安装位置是/opt/riscv-gnu-toolchain,这个可以自定义。
在终端执行

./configure --prefix=$RISCV

因为使用的是Ubuntu,64位系统,根据文档的提示执行上面的语句。其他的系统请查看文档。

然后开始编译项目,这个过程会很久,久到足够跑完10公里。

sudo make

上述步骤完成之后,使用下面的命令验证是否安装成功。如果显示版本信息则说明安装成功。

riscv64-unknown-elf-gcc --version
如果遇到其他问题,欢迎在底下评论。
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
riscv-tools的安装可以按照以下步骤进行: 1. 首先,根据需要选择合适的编译器类型。根据引用,riscv-tools的编译器分为裸机和嵌入式Linux两大类。其中,裸机编译器为riscv32-unknown-elf-gccriscv64-unknown-elf-gcc,嵌入式Linux编译器为riscv32-unknown-linux-gnu-gccriscv64-unknown-linux-gnu-gcc。 2. 在命令行中执行以下步骤来编译相应的编译器: a. 编译裸机编译riscv32-unknown-elf-gcc: - 进入riscv-gnu-toolchain目录 - 创建一个build目录并进入 - 运行configure命令,设置安装路径和相关参数 - 运行make命令进行编译 b. 编译裸机编译riscv64-unknown-elf-gcc: - 进入riscv-gnu-toolchain目录 - 创建一个build目录并进入 - 运行configure命令,设置安装路径和相关参数 - 运行make命令进行编译 c. 编译嵌入式Linux编译riscv32-unknown-linux-gnu-gcc: - 进入riscv-gnu-toolchain目录 - 创建一个build目录并进入 - 运行configure命令,设置安装路径和相关参数,包括启用Linux支持 - 运行make linux命令进行编译 d. 编译嵌入式Linux编译riscv64-unknown-linux-gnu-gcc: - 进入riscv-gnu-toolchain目录 - 创建一个build目录并进入 - 运行configure命令,设置安装路径和相关参数,包括启用Linux支持和禁用multilib选项 - 运行make linux命令进行编译 3. 另外,根据引用,为了模拟RISC-V二进制文件,还需要构建riscv-fesvr和riscv-isa-sim两个组件。可以按照以下步骤进行: - 获取riscv-tools源码 - 进入riscv-tools目录 - 运行build.sh脚本进行构建 4. 创建安装目录并设置环境变量: - 创建安装目录,例如sudo mkdir /opt/RISCV/riscv64 - 设置目录权限,例如sudo chmod -R 777 /opt/RISCV/riscv64 - 编辑.bashrc文件,添加环境变量设置,例如export RISCV="/opt/RISCV/riscv64"和export PATH=$PATH:$RISCV/bin - 运行source ~/.bashrc命令使环境变量生效 综上所述,以上是安装riscv-tools的一般步骤。根据具体需求选择编译器类型,并根据引用、中提供的命令和参数进行操作即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Ubuntu安装riscv-gnu-toolchain和riscv-tools](https://blog.csdn.net/weixin_43283275/article/details/125365614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [RISC-V Tools编译安装三部曲之一](https://blog.csdn.net/l919898756/article/details/80987091)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值