【问题标题】:Need 'built-in.o' error when compiling U-Boot编译 U-Boot 时需要“built-in.o”错误
【发布时间】: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-bootlinaro cross-compilerarm cross-compiler。正如您所说,缺少 cache_v7_asm.S 和 vector.S 。但是,如果我不在 makefile 中暗示它们,它会给其他文件同样的错误。
  • 为了更清楚,make ARCH=arm ... 也是错误的。并且鉴于源文件存在于 github 中,如果它不存在,则您的结帐有问题。
  • 我猜是在使用git clone时出现了问题。正如你所说,我正确下载并开始编译而不使用make ARCH=arm。这次没有出现这个错误,又出现了一个错误,我会另开话题,谢谢。

标签: linux build kernel u-boot


【解决方案1】:

问题是由于 U-Boot 文件下载不完整或损坏所致。它应该可以正确下载。

编译时,make ARCH=arm 语句应该被删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多