自己編譯Ubuntu make系統(tǒng)
make經(jīng)過長時間的發(fā)展,下面就這就來講術(shù)Ubuntu make 這里我發(fā)表一下個人理解,下面就這就來講術(shù)Ubuntu make。在 Ubuntu8.04下,應該一切很順利,但是我裝的是9.10版本,所以會有些問題。
先裝jdk1.5,網(wǎng)上說1.6的有點小問題,所以我沒裝1.6,選擇了1.5. 然后一邊裝必須的一些程序,apt-get install 很多亂七八糟的,網(wǎng)上能搜到,然后一邊下載android源碼。
源碼的下載需要git,curl和repo,git和curl可以直接用apt-get install git-core curl就可以了然后下載repo curl http://android.git.kernel.org/repo >~/bin/repo
添加可執(zhí)行權(quán)限sudo chmod +x repo
初始化repo repo init -u git://android.git.kernel.org/platform/manifest.git如果只需要某一個版本,比如我只要cupcakerepo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
然后建個目錄,mkdir android 進入cd android 下載repo sync
然后就等吧,大概兩個G左右的內(nèi)容,在獲取39%的時候和95%的時候是最慢的,因為39%的有一百多M,95%的有差不多400M。
下載完之后,先不要Ubuntu make,因為還有幾個問題:
1.如果直接Ubuntu make,會出現(xiàn)frameworks/policies/base/PolicyConfig.mk:22: *** No module defined for the given PRODUCT_POLICY (android.policy_phone). Stop.錯誤。
解決辦法:
在build/tools/findleaves.sh中的第89行,
這一句find "${@:0:$nargs}" $findargs -type f -name "$filename" -print |
改為find "${@:1:$nargs-1}" $findargs -type f -name "$filename" -print |
2.frameworks/base/tools/aidl/AST.cpp:10: error: 'fprintf' was not declared in this scope的錯誤
解決辦法:
下載gcc-4.3和g++-4.3
apt-get install gcc-4.3 g++-4.3
大約十多兆,然后
進入/usr/bin cd /usr/bin
建個軟連接
ln -s gcc-4.3 gcc
ln -s g++-4.3 g++
然后進入android目錄下,執(zhí)行Ubuntu make,就可以了。
我在虛擬機里面Ubuntu make的,分了1G內(nèi)存給他,處理器50%,一共花了兩個小時才編譯完成。編譯完成后,在android目錄下的out文件夾中,就是結(jié)果,也有兩個G左右。
在out/target/product/generic目錄下,有三個img文件,system.img,ramdisk.img,userdata.img,這三個就是需要的android系統(tǒng)鏡像文件,放到模擬器中運行就行了。
運行出來之后,進入設置里面,可以看到自己編譯的標識呢,嘿嘿,很有成就感的。
【編輯推薦】