[Android] 单独编译生成boot.img时mkbootfs: No such file or directory解决方法
在一臺(tái)沒有安裝Android源碼編譯環(huán)境的64位 Ubuntu14.04.5虛擬機(jī)上嘗試單獨(dú)編譯Android用的Linux Kernel。并從編譯好Android源碼的機(jī)器上將out文件夾下的mkbootfs、minigzip、mkbootimg二進(jìn)制程序copy了過來,用于生成boot.img
用copy過來的arm-eabi-4.6編譯Kernel正常,但是編譯后生成ramdisk.img的那一步,腳本執(zhí)行總提示
tools/mkbootfs: No such file or directory
tools/minigzip: No such file or directory
確認(rèn)了mkbootfs和minigzip文件的權(quán)限等沒發(fā)現(xiàn)問題,只能想到是某些安裝包沒有安導(dǎo)致與原有的開發(fā)環(huán)境不一樣。
試驗(yàn)后用下面命令安裝g++-multilib和gcc-multilib后就正常了。
sudo apt-get install g++-multilib gcc-multilib果然是由于mkbootfs是用32位的gcc/g++編譯生成的,所以在64位系統(tǒng)上執(zhí)行就需要安裝g++-multilib或者gcc-multilib,兩個(gè)只安裝其中一個(gè)可能也可行,不過以后可能還有其他需要,就索性都安上吧。
又用readelf確認(rèn)了一下mkbootfs文件的ELF Header證實(shí)了想法。
ELF Header:Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32Data: 2's complement, little endianVersion: 1 (current)OS/ABI: UNIX - System VABI Version: 0Type: EXEC (Executable file)Machine: Intel 80386Version: 0x1Entry point address: 0x8048c28Start of program headers: 52 (bytes into file)Start of section headers: 23604 (bytes into file)Flags: 0x0Size of this header: 52 (bytes)Size of program headers: 32 (bytes)Number of program headers: 8Size of section headers: 40 (bytes)Number of section headers: 39Section header string table index: 36總結(jié)
以上是生活随笔為你收集整理的[Android] 单独编译生成boot.img时mkbootfs: No such file or directory解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 驾考软件开发,驾考驾照考
- 下一篇: JAVA高级开发工程师面试系列——Roc