Fedora系统下RISC-V GNU Toolchain安装构建停滞问题求助
Fedora下RISC-V GNU Toolchain完整构建指南及问题解决
问题原因说明
- 克隆仓库仅2MB:
riscv-gnu-toolchain是超级仓库,仅包含配置脚本,核心代码都在子模块中,默认克隆不会拉取子模块。 - 构建卡在克隆gcc子模块:多为网络访问问题,或未正确拉取子模块导致。
完整构建步骤
1. 安装依赖项
确保所有构建依赖齐全:
sudo dnf install autoconf automake python3 libmpc-devel mpfr-devel gmp-devel gawk bison flex texinfo patchutils gcc gcc-c++ zlib-devel expat-devel git
2. 正确克隆仓库及子模块
超级仓库需要拉取子模块才能获取完整代码,两种方式任选:
- 克隆时直接拉取所有子模块:
mkdir risc-v && cd risc-v git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
- 若已克隆仓库,补拉子模块:
cd risc-v-gnu-toolchain git submodule update --init --recursive
注:此步骤会拉取约7GB的代码,需确保网络稳定,耐心等待。
3. 配置与构建
- 创建安装目录并设置权限(避免后续权限问题):
sudo mkdir -p /opt/riscv sudo chown $USER:$USER /opt/riscv
- 配置构建参数:
./configure --prefix=/opt/riscv
如需针对特定RISC-V架构优化,可添加参数,例如--with-arch=rv64gc --with-abi=lp64d,按需调整。
- 加速构建:
make linux -j$(nproc)
-j$(nproc)利用所有CPU核心并行构建,大幅缩短耗时。
子模块拉取卡住的解决方法
- 检查网络:确认能正常访问GitHub相关子模块仓库,可尝试ping github.com测试连通性。
- 单独拉取卡住的子模块:例如仅拉取gcc子模块:
cd risc-v-gnu-toolchain git submodule update --init --recursive gcc
- 替换国内镜像:若GitHub访问缓慢,编辑
.gitmodules文件,将对应子模块的url替换为国内镜像(如Gitee镜像),示例:
将gcc的url从https://github.com/gcc-mirror/gcc.git改为https://gitee.com/mirrors/gcc.git,保存后重新执行git submodule update --init --recursive。
验证安装
构建完成后,将工具链加入环境变量:
echo 'export PATH=$PATH:/opt/riscv/bin' >> ~/.bashrc source ~/.bashrc
验证安装结果:
riscv64-unknown-linux-gnu-gcc --version
输出gcc版本信息即表示安装成功。
内容的提问来源于stack exchange,提问作者Mukund
相关产品推荐
相关产品推荐

