android make 报错FAILED: out/target/product/******/abl.elf

本文讲述了作者在将Android 10源码迁移至新目录后遇到的编译错误,涉及abl.elf编译失败和make[3]错误,通过清理中间文件和调整cmake工程来解决。核心内容包括修改BuildEnv.sh和BaseTools目录下的配置,以及针对cmake工程的特定处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:https://www.cnblogs.com/xuewangkai/p/14385813.html

Android 源码更换目录后编译失败 FAILED: out/target/product/xxxx/abl.elf
项目中把Android 10源码移动到另一个目录后编译失败, 报类似下面的错误:

FAILED: out/target/product/xxxx/abl.elf

参考: https://blog.youkuaiyun.com/ngyzqf/article/details/82054329 解决了.

错误1,abl.elf 编译失败是因为源码编译后,编译路径被记下了,存放在了文件里 bootable/bootloader/edk2/Conf/BuildEnv.sh,解决办法, 在 bootable/bootloader/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.

解决办法:把中间文件清掉即可, 进入 bootable/bootloader/edk2/BaseTools 目录:

make clean
之后重新编译源码即可.

思路: 一般这种问题都是一开始源码编译后记录了编译路径,更换路径后去找之前路径无法找到而报错, 方法就是清理之前编译生成的中间文件.

我在编译中还碰到cmake工程编译生成的 .cxx 目录中文件也记录了上一次编译路径等信息,导致更换路径编译失败, 解决方法就是把 .cxx 目录删除, 重新编译就好.

我的情况:
代码重新repo init后,还没开始编译就失败了,make clean亲测生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值