Centos 7系统 如何在线/离线安装编译risc-v toolchain

1.*查看linux版本

lsb_release -b
#(lsb_release:Linux Standard Base- release )

图1

出现如下字样
图2

确认使用的linux版本为centos7

2.获取risc-v_toolchain

如果网络够好,可以轻松连接github,可以直接使用命令
$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain

如果连接github不稳定,使用iscas镜像站提供的脚本

riscv-gnu-toolchain 及其子模块源码安装

第一步## 单独克隆

git clone https://mirror.iscas.ac.cn/riscv-toolchains/git/riscv-collab/riscv-gnu-toolchain.git

第二步## 同时克隆子模块,注意路径为 .git 替换为 .sh

curl https://mirror.iscas.ac.cn/riscv-toolchains/git/riscv-collab/riscv-gnu-toolchain.sh | bash

3.toolchain-prerequisites

如果可连接网络,直接执行

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

如果需要离线安装,下载本人整合的toolchain-prerequisites压缩包或者在有网络连接的设备中按照依赖一一下载rpm软件包,
tar -zxvf解压后
首先cd到解压后文件内部的 rpms/python
执行

rpm -Uvh --force --nodeps *.rpm 

安装python3
回到rpms路径,执行

rpm -Uvh --force  *.rpm

未出现报错则安装成功

4.添加路径以及宏定义

在 ~/.bashrc中增加

#RISC-V TOOL CHAIN
export RISCV=/path/to/tools/riscv-gnu/2023.04.29(readme中推荐的路径)
export PATH=$RISCV/bin:$PATH

之后执行

source ~/.bashrc

使其生效

5.*安装devtoolset-gcc9

(在线以任意方法安装高版本gcc均可,centos自带的4.8.5不行)
离线通过联网设备下载来源devtoolset-gcc-9压缩包(分享中也有),解压.

su(获取root权限)

在解压后的文件夹中以以下顺序执行安装(直接复制粘贴所有指令执行就行)

rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-39.el7.x86_64.rpm
rpm -ivh gcc-4.8.5-39.el7.x86_64.rpm
rpm -ivh scl-utils-20130529-19.el7.x86_64.rpm
rpm -ivh zip-3.0-11.el7.x86_64.rpm
rpm -ivh unzip-6.0-21.el7.x86_64.rpm
rpm -ivh libquadmath-4.8.5-39.el7.x86_64.rpm
rpm -ivh libgfortran5-8.3.1-2.1.1.el7.x86_64.rpm
rpm -ivh libgcc-4.8.5-39.el7.i686.rpm
rpm -ivh dwz-0.11-3.el7.x86_64.rpm
yum localinstall perl*.rpm
rpm -ivh python-srpm-macros-3-32.el7.noarch.rpm
rpm -ivh redhat-rpm-config-9.1.0-88.el7.centos.noarch.rpm
rpm -ivh avahi-libs-0.6.31-20.el7.x86_64.rpm
rpm -ivh boost-regex-1.53.0-28.el7.x86_64.rpm
rpm -ivh libcgroup-0.41-21.el7.x86_64.rpm
rpm -ivh audit-libs-python-2.8.5-4.el7.x86_64.rpm
rpm -ivh libsemanage-python-2.5-14.el7.x86_64.rpm
rpm -ivh setools-libs-3.3.8-4.el7.x86_64.rpm
rpm -ivh python-IPy-0.75-6.el7.noarch.rpm
rpm -ivh checkpolicy-2.5-8.el7.x86_64.rpm
rpm -ivh policycoreutils-python-2.5-34.el7.x86_64.rpm
rpm -ivh devtoolset-9-runtime-9.1-0.el7.x86_64.rpm
rpm -ivh devtoolset-9-elfutils-libelf-0.176-6.el7.x86_64.rpm
rpm -ivh devtoolset-9-elfutils-libs-0.176-6.el7.x86_64.rpm
rpm -ivh devtoolset-9-elfutils-0.176-6.el7.x86_64.rpm
rpm -ivh devtoolset-9-dyninst-10.1.0-4.el7.x86_64.rpm
rpm -ivh devtoolset-9-binutils-2.32-16.el7.x86_64.rpm
rpm -ivh devtoolset-9-memstomp-0.1.5-5.el7.x86_64.rpm
rpm -ivh devtoolset-9-oprofile-1.3.0-4.el7.x86_64.rpm
rpm -ivh devtoolset-9-dwz-0.12-1.1.el7.x86_64.rpm
rpm -ivh devtoolset-9-libstdc++-devel-9.3.1-2.el7.x86_64.rpm
rpm -ivh devtoolset-9-strace-5.1-7.el7.x86_64.rpm
rpm -ivh devtoolset-9-valgrind-3.15.0-9.el7.x86_64.rpm
rpm -ivh devtoolset-9-make-4.2.1-2.el7.x86_64.rpm
rpm -ivh devtoolset-9-ltrace-0.7.91-2.el7.x86_64.rpm
rpm -ivh boost-system-1.53.0-28.el7.x86_64.rpm
rpm -ivh devtoolset-9-systemtap-runtime-4.1-9.el7.x86_64.rpm
rpm -ivh efivar-libs-36-12.el7.x86_64.rpm
rpm -ivh mokutil-15-2.el7.centos.x86_64.rpm
rpm -ivh devtoolset-9-systemtap-client-4.1-9.el7.x86_64.rpm
rpm -ivh kernel-debug-devel-3.10.0-1127.13.1.el7.x86_64.rpm
rpm -ivh devtoolset-9-systemtap-devel-4.1-9.el7.x86_64.rpm
rpm -ivh devtoolset-9-systemtap-4.1-9.el7.x86_64.rpm
rpm -ivh devtoolset-9-perftools-9.1-0.el7.x86_64.rpm
rpm -ivh ctags-5.8-13.el7.x86_64.rpm
rpm -ivh devtoolset-9-gcc-9.3.1-2.el7.x86_64.rpm
rpm -ivh devtoolset-9-gcc-c++-9.3.1-2.el7.x86_64.rpm
rpm -ivh tcl-8.5.13-8.el7.x86_64.rpm

之后运行!!!

scl enable devtoolset-9 bash
gcc -v

检查gcc版本
在哪个窗口运行,就仅在哪个窗口生效,运行后此窗口gcc的版本会升级为gcc 9

6.编译toolchain生成gcc

首先执行命令

scl enable devtoolset-9 bash

激活devtool-gcc-9(如果有高版本gcc可以无视这一步)
之后找到toolchain安装路径

cd  xxx/riscv-gnu-toolchain
./configure --enable-multilib --prefix=xxx 

(此步设置因需求而定,”prefix=”后的xxx为安装地址)
配置之后,进行编译

make -j`nproc` 或者make linux -j`nproc`

编译结束,没有报错

cd  prefix/bin 
ls

看一看如果生成了riscv64-unknown-gnu-gcc或者riscv64-unknown-elf-gcc 就成功啦
图3

\ O(∩_∩)O /

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

brisk.y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值