Ubuntu 18.04编译Zynq706的U-Boot v2020.01遇错误求助
解决U-Boot v2020.01针对Zynq706编译的交叉工具链错误
问题场景
在Ubuntu 18.04.06 LTS系统上独立编译Xilinx Zynq706开发板的U-Boot v2020.01源码(未使用Petalinux),执行以下命令后编译失败:
export CROSS_COMPILE=/home/alpha/dmazyna/build/tmp/sysroots-components/x86_64/gcc-cross-arm/usr/libexec/arm-xilinx-linux-gnueabi/gcc/arm-xilinx-linux-gnueabi/10.2.0/arm-xilinx-linux-gnueabi-make zynq_zc706_defconfigmake
错误信息
HOSTLD tools/mkimage HOSTCC tools/fit_info.o HOSTLD tools/fit_info HOSTCC tools/fit_check_sign.o HOSTLD tools/fit_check_sign HOSTCC tools/spl_size_limit LD arch/arm/cpu/built-in.o /bin/sh: /home/alpha/dmazyna/build/tmp/sysroots-components/x86_64/gcc-cross-arm/usr/libexec/arm-xilinx-linux-gnueabi/gcc/arm-xilinx-linux-gnueabi/10.2.0/arm-xilinx-linux-gnueabi-ar: No such file or directory scripts/Makefile.build:355: recipe for target 'arch/arm/cpu/built-in.o' failed make[1]: *** [arch/arm/cpu/built-in.o] Error 127 Makefile:1698: recipe for target 'arch/arm/cpu' failed make: *** [arch/arm/cpu] Error 2 root@alpha:/home/alpha/Desktop/u-boot-v2020.01#
解决方法
1. 修正交叉编译工具链路径
错误根源是指定的CROSS_COMPILE路径下不存在arm-xilinx-linux-gnueabi-ar工具。交叉编译工具的ar、gcc等二进制文件通常位于工具链的bin目录下,而非gcc的子目录:
- 先验证正确路径是否存在工具:
ls /home/alpha/dmazyna/build/tmp/sysroots-components/x86_64/gcc-cross-arm/usr/bin/arm-xilinx-linux-gnueabi-* - 若工具存在,重新设置环境变量:
export CROSS_COMPILE=/home/alpha/dmazyna/build/tmp/sysroots-components/x86_64/gcc-cross-arm/usr/bin/arm-xilinx-linux-gnueabi-
2. 修复工具链缺失问题
如果上述路径下没有对应工具,说明工具链未完整安装:
- 可以使用Ubuntu官方源的ARM交叉工具链替代:
sudo apt update && sudo apt install gcc-arm-linux-gnueabihf - 然后设置环境变量:
export CROSS_COMPILE=arm-linux-gnueabihf-
3. 清理缓存后重新编译
修改环境变量后,清理之前的编译残留,重新执行编译流程:
make distclean make zynq_zc706_defconfig make
内容的提问来源于stack exchange,提问作者utkarsh rawat
相关产品推荐
相关产品推荐

