RISC-V评估板原生工具链构建报错:riscv64架构未识别
解决RISC-V原生GCC编译时
riscv64架构不识别的问题 错误原因
GCC 7.5.0版本自带的config.sub/config.guess脚本版本过旧,不支持riscv64-linux-gnu架构识别——该版本发布时RISC-V的官方支持尚未完全纳入GNU配置工具链。
解决方案
方案1:更新配置脚本到支持RISC-V的版本
- 获取最新的
config.sub和config.guess文件(可从新版本GCC仓库或GNU config项目提取) - 替换GCC源码目录及isl子目录中的旧文件:
# 替换主目录的配置脚本 cp /path/to/new/config.sub ./gcc/config.sub cp /path/to/new/config.guess ./gcc/config.guess # 替换isl子目录的配置脚本 cp /path/to/new/config.sub ./gcc/isl/config.sub cp /path/to/new/config.guess ./gcc/isl/config.guess - 清理之前的编译目录
objdir,重新执行configure和make
方案2:改用对RISC-V支持完善的GCC版本
GCC 8及以上版本已内置完整的RISC-V架构支持,建议切换到GCC 8.5.0:
- 切换GCC源码分支:
git checkout releases/gcc-8.5.0 - 重新下载依赖:
./contrib/download_prerequisites - 清理旧编译目录,重新执行原configure命令
方案3:确保交叉编译环境配置正确
在configure前设置环境变量,让构建系统能正确识别RISC-V交叉工具链和sysroot:
export SYSROOT=path/to/evaluation_board_bsp/sysroot export CC="riscv64-linux-gnu-gcc --sysroot=$SYSROOT" export CXX="riscv64-linux-gnu-g++ --sysroot=$SYSROOT"
之后再运行configure命令,确保--with-build-sysroot参数值与$SYSROOT一致
额外注意事项
- 你的configure参数设置正确:
--build=x86_64-pc-linux(主机架构)、--host=riscv64-linux-gnu(目标运行架构)、--target=riscv64-linux-gnu(原生编译,与host一致) - 确保Ubuntu 18.04环境已安装所有依赖:
apt-get install build-essential flex bison libgmp-dev libmpfr-dev libmpc-dev
内容的提问来源于stack exchange,提问作者SOORYADEV
相关产品推荐
相关产品推荐

