Android 源码更换目录后编译失败 FAILED: out/target/product/xxxx/abl.elf


项目中把Android 10源码移动到另一个目录后编译失败, 报类似下面的错误:

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

参考: https://blog.csdn.net/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 目录删除, 重新编译就好.


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM