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