android8.1 高通平台abl 编译不过问题

代码从服务器拉下来,编译都没问题,但是由于磁盘空间小,挪了个位置,导致能编译过的代码编译失败:

 [  0% 827/118012] build out/target/product/apollo/abl.elf
 FAILED: out/target/product/apollo/abl.elf 
 /bin/bash -c "make -j4 -C bootable/bootloader/edk2 BOOTLOADER_OUT=../../../out/target/product/apollo/obj/ABL_OBJ all VERIFIED_BOOT=1 VERIFIED_BOOT_2=0 USER_BUILD_VARIANT=0 CLANG_BIN=/home/sdduser/code/android_O/prebuilts/clang/host/ linux-x86/clang-4053586/bin/ TARGET_ARCHITECTURE=AARCH64"
 make: Entering directory '/home/sdduser/code/android_O/bootable/bootloader/edk2'
 Loading previous configuration from /home/sdduser/code/android_O/bootable/bootloader/edk2/Conf/BuildEnv.sh
 WORKSPACE: /home/sdduser/code/android_O/bootable/bootloader/edk2
 EDK_TOOLS_PATH: /local/android_O/bootable/bootloader/edk2/BaseTools
 CONF_PATH: /home/sdduser/code/android_O/bootable/bootloader/edk2/Conf
 make[1]: Entering directory '/home/sdduser/code/android_O/bootable/bootloader/edk2'
 make[1]: warning: -jN forced in submake: disabling jobserver mode.
 make -C Source/C
 make[2]: Entering directory '/home/sdduser/code/android_O/bootable/bootloader/edk2/BaseTools/Source/C'
 Attempting to detect ARCH from 'uname -m': x86_64
 Detected ARCH of X64 using uname.
 mkdir -p .
 make -C Common
 make[3]: Entering directory '/home/sdduser/code/android_O/bootable/bootloader/edk2/BaseTools/Source/C/Common'
 make[3]: *** No rule to make target '/usr/include/x86_64-linux-gnu/bits/predefs.h', needed by 'BasePeCoff.o'.  Stop.
 make[3]: Leaving directory '/home/sdduser/code/android_O/bootable/bootloader/edk2/BaseTools/Source/C/Common'
 GNUmakefile:79: recipe for target 'Common' failed
 make[2]: *** [Common] Error 2
 make[2]: Leaving directory '/home/sdduser/code/android_O/bootable/bootloader/edk2/BaseTools/Source/C'
 GNUmakefile:25: recipe for target 'Source/C' failed
 make[1]: *** [Source/C] Error 2
 make[1]: Leaving directory '/home/sdduser/code/android_O/bootable/bootloader/edk2/BaseTools'
 makefile:49: recipe for target 'EDK_TOOLS_BIN' failed
 make: *** [EDK_TOOLS_BIN] Error 2
 make: Leaving directory '/home/sdduser/code/android_O/bootable/bootloader/edk2'

错误1,代码默认下载好后,编译路径被记下了,存放在了文件里bootable/bootloader/edk2/Conf/BuildEnv.sh,使用make clean 没办法清掉.

可以验证下,进入报错目录: bootable/bootloader/edk2 使用如下命令

. edksetup.sh

结果

WORKSPACE: /home/sdduser/code/android_O/bootable/bootloader/edk2
EDK_TOOLS_PATH: /local/android_O/bootable/bootloader/edk2/BaseTools
CONF_PATH: /home/sdduser/code/android_O/bootable/bootloader/edk2/Conf

可以看到BaseTools路径:EDK_TOOLS_PATH 还是之前的路径. 解决办法, 在edk2目录下执行:

rm -rf Conf/BuildEnv.sh
unset EDK_TOOLS_PATH
. ./edksetup.sh BaseTools

错误2: make[3]: *** No rule to make target '/usr/include/x86_64-linux-gnu/bits/predefs.h', needed by 'BasePeCoff.o'.  Stop.

这个简单, 把中间文件清掉即可, 进入 BaseTools目录:

make clean

重新编译: make -j8 2>&1 | tee build.log 就不再报abl 编译错误了.

猜你喜欢

转载自blog.csdn.net/ngyzqf/article/details/82054329