编译 U-Boot 时需要“built-in.o”错误
Posted
技术标签:
【中文标题】编译 U-Boot 时需要“built-in.o”错误【英文标题】:Need 'built-in.o' error when compiling U-Boot 【发布时间】:2021-10-20 00:08:13 【问题描述】:我正在尝试为带有 armv7 处理器的开发板编译 U-Boot。它有一个瑞芯微RK3288处理器。我使用的命令是:
make evb-rk3288_defconfig
export CC=/opt/workspace/sdk/gcc-arm-10.3-2021.07-z86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-
或
export CC=/opt/workspace/sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
然后
make ARCH=arm CROSS_COMPILE=$CC
当我尝试这种方式时出现错误。我得到的错误如下:
.
.
.
HOSTCC tools/lib/ecdsa/ecdsa-libcrypto.o
HOSTCC tools/lib/rsa/rsa-sign.o
HOSTCC tools/lib/rsa/rsa-verify.o
HOSTCC tools/lib/rsa/rsa-mod-exp.o
HOSTCC tools/lib/aes/aes-encrypt.o
HOSTCC tools/lib/aes/aes-decrypt.o
HOSTCC tools/mkimage.o
HOSTCC tools/fit_info.o
HOSTCC tools/fit_check_sign.o
HOSTCC tools/proftool
HOSTCC tools/fdtgrep.o
HOSTCC tools/spl_size_limit
HOSTCC tools/lib/crc8.o
HOSTLD tools/mkenvimage
HOSTLD tools/dumpimage
HOSTLD tools/fit_info
HOSTLD tools/mkimage
HOSTLD tools/fit_check_sign
HOSTLD tools/gen_ethaddr_crc
HOSTLD tools/fdtgrep
AR arch/arm/cpu/built-in.o
make[1]: *** No rule to make target 'arch/arm/cpu/armv7/cache_v7_asm.o', needed by 'arch/arm/cpu/armv7/built-in.o'. Durdu.
make[1]: *** Bitmemiş işler için bekliyor....
CC arch/arm/cpu/armv7/cache_v7.o
make[1]: *** No rule to make target 'arch/arm/lib/vectors.o', needed by 'arch/arm/lib/built-in.o'. Durdu.
make: *** [Makefile:1814: arch/arm/lib] Error 2
make: *** Bitmemiş işler için bekliyor....
CC arch/arm/mach-rockchip/board.o
CC arch/arm/mach-rockchip/cpu-info.o
CC arch/arm/mach-rockchip/boot_mode.o
CC arch/arm/mach-rockchip/sdram.o
CC board/rockchip/evb_rk3288/evb-rk3288.o
CC arch/arm/mach-rockchip/rk3288/clk_rk3288.o
AR board/rockchip/evb_rk3288/built-in.o
CC arch/arm/mach-rockchip/rk3288/rk3288.o
CC arch/arm/mach-rockchip/rk3288/syscon_rk3288.o
make: *** [Makefile:1814: arch/arm/cpu/armv7] Error 2
AR arch/arm/mach-rockchip/rk3288/built-in.o
AR arch/arm/mach-rockchip/built-in.o
root@pardus:/opt/workspace/uboot#
【问题讨论】:
不要export ARCH=arm
,因为这不是必需的并且可能会破坏事情。你的消息来源在哪里?这些错误意味着缺少 cache_v7_asm.S 和 vector.S。
我没有使用export ARCH=arm
,现在我在制作时没有输入它,但我得到了同样的错误。我的资源:@987654321@、U-boot、linaro cross-compiler、arm cross-compiler。正如您所说,缺少 cache_v7_asm.S 和 vector.S 。但是,如果我不在 makefile 中暗示它们,它会给其他文件同样的错误。
为了更清楚,make ARCH=arm ...
也是错误的。并且鉴于源文件存在于 github 中,如果它不存在,则您的结帐有问题。
我猜是在使用git clone
时出现了问题。正如你所说,我正确下载并开始编译而不使用make ARCH=arm
。这次没有出现这个错误,又出现了一个错误,我会另开话题,谢谢。
【参考方案1】:
问题是由于 U-Boot 文件下载不完整或损坏所致。它应该可以正确下载。
编译时,make ARCH=arm
语句应该被删除。
【讨论】:
以上是关于编译 U-Boot 时需要“built-in.o”错误的主要内容,如果未能解决你的问题,请参考以下文章