自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ubuntu 10.10下如何編譯Android froyo?

運(yùn)維 系統(tǒng)運(yùn)維
Ubuntu是一份基于Debian的完整的桌面Linux操作系統(tǒng),它可免費(fèi)使用,所以使用ubuntu系統(tǒng)的用戶也越來(lái)越多。當(dāng)筆者初次把系統(tǒng)升級(jí)到Ubuntu 10.10,首先對(duì)Ubuntu在UI上的突飛猛進(jìn)表示大家贊賞,很多細(xì)節(jié)都做得不錯(cuò),尤其是對(duì)字體效果的優(yōu)化。下文介紹的是在Ubuntu 10.10下編譯Android froyo的方法。

Ubuntu是一份基于Debian的完整的桌面Linux操作系統(tǒng),它可免費(fèi)使用,所以使用ubuntu系統(tǒng)的用戶也越來(lái)越多。當(dāng)筆者初次把系統(tǒng)升級(jí)到Ubuntu 10.10,首先對(duì)Ubuntu在UI上的突飛猛進(jìn)表示大家贊賞,很多細(xì)節(jié)都做得不錯(cuò),尤其是對(duì)字體效果的優(yōu)化。下文介紹的是在Ubuntu 10.10下編譯Android froyo的方法。

轉(zhuǎn)入正題,發(fā)現(xiàn),隨著系統(tǒng)的升級(jí),Android編譯的條件也變得相當(dāng)苛刻了。如果單純的按照老版本的編 譯方法,貌似會(huì)很容易碰壁。從昨晚到現(xiàn)在,我就把系統(tǒng)重裝了兩次(從去年底入手新筆電到現(xiàn)在就裝過(guò)四次系統(tǒng)= =),原因都?xì)w功于新環(huán)境下編譯Froyo。

首先,對(duì)于新版本的Ubuntu,***用64位的,在32位環(huán)境下編譯,在check階段都報(bào)錯(cuò)。之前就是因?yàn)槲已b的是32位的系統(tǒng),結(jié)果一直沒(méi)成功,不得不連夜下載64位系統(tǒng)裝上,杯具得一比。

  1. warning ************************************************************  
  2.  
  3. warning You are attempting to build on a 32-bit system.  
  4.  
  5. warning Only 64-bit build environments are supported beyond froyo/2.2.  
  6.  
  7. warning ************************************************************ 

如果一定要在32位環(huán)境下編譯,網(wǎng)上也有解決方案,我試了試,但沒(méi)成功。

其次是,編譯器的版本也要注意,就是gcc和g++,剛開始,我一直安裝4.4版本的,結(jié)果在編譯的時(shí)候,發(fā)現(xiàn)不少代碼編譯不通過(guò)。起初沒(méi)留意,自己邊改 邊把C/C++溫習(xí)了一把= =,但終究不是解決的辦法,總會(huì)報(bào)些不倫不類的低級(jí)錯(cuò)誤。想想估計(jì)是編譯器版本的問(wèn)題,新版本的編譯器對(duì)代碼解析更加嚴(yán)格了吧。后來(lái)還是換回了4.3版本的。

如果以及安裝來(lái)4.4的,可以在安裝4.3后建立鏈接

  1. cd /usr/bin  
  2.  
  3. ln -s gcc-4.3 gcc  
  4.  
  5. ln -s g++-4.3 g++ 

然后是,SDK編譯的必要工具包,如果完全挪用32位編譯的工具包,會(huì)發(fā)現(xiàn)編譯過(guò)程中缺少很多必要的libs,出現(xiàn)類似 cannot find -lxxx 的錯(cuò)誤。因?yàn)槿鄙傧嚓P(guān)的libs

建議在apt-get install的時(shí)候,加上這兩個(gè)東東:

 

  1. g++-multilib g++-4.3-multilib 

 

或者,直接大膽的拷貝這個(gè)= =

 

  1. sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev java-common unixodbc 

 

還有就是,Java JDK版本,之前都說(shuō),Android只支持1.5版本的JDK,現(xiàn)在,對(duì)于Froyo,貌似支持1.6的了,但杯具的是,不支持1.5,編譯時(shí)在 check階段,會(huì)報(bào)錯(cuò),必須1.6版本的JDK。所以啊,編譯的時(shí)候注意了,既然允許1.6了,就不要在1.5上掙扎了,hoho~

***,就是,做好以上準(zhǔn)備之后,make之,以為可以看看電視喝喝茶什么的,結(jié)果,給我來(lái)了這么一個(gè)error:

 

  1. build/core/base_rules.mk:128: *** dalvik/libcore: MODULE.TARGET.JAVA_LIBRARIES.core already defined by libcore. Stop. 

 

網(wǎng)上有解決方案,請(qǐng)大膽的點(diǎn)擊這里,我沒(méi)試,同步太耗時(shí)間來(lái),我直接找到base_rules.mk的第128行,用#注釋之! 像這樣:

 

  1. #$(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id))) 

 

需要聲明的是,這只是在非常情況下做的非常處理,如果在這個(gè)地方?jīng)]報(bào)錯(cuò),就不用修改源文件來(lái)。

其實(shí),我覺(jué)得,在check tools階段,需要校驗(yàn)很多模塊與工具,比如什么系統(tǒng)是32位還是64位啊,JDK那個(gè)版本啊之類的,如果檢測(cè)到某個(gè)工具不滿足要求就報(bào)錯(cuò)了。我們可以 嘗試將這個(gè)校驗(yàn)條件給注釋掉,跳過(guò)對(duì)該工具的檢測(cè)。這種檢測(cè)應(yīng)該,我說(shuō)的是應(yīng)該,只是為保證安全且成功的編譯而提供的一種校驗(yàn)機(jī)制,是需要的,但不是必須 的,所以,在一些非常情況,我們可以做一下非常處理。

以上就是我在ubuntu10.10倒騰了一天的心得體會(huì),希望對(duì)大家有幫助,有不對(duì)的地方,請(qǐng)大膽拍磚指正,謝謝!

總結(jié):

希望本文介紹的Ubuntu 10.10下編譯Android froyo的方法能夠?qū)ψx者有所幫助,更多有關(guān)linux系統(tǒng)的知識(shí)還有待于讀者去探索和學(xué)習(xí)。

責(zé)任編輯:韓亞珊 來(lái)源: 雨林木風(fēng)
相關(guān)推薦

2011-07-01 12:52:50

Ubuntu Qt wxWidgets

2011-08-29 16:31:30

UbuntuAndroid

2011-08-30 15:53:07

Ubuntussh

2011-09-02 16:38:26

UbuntuNTFS

2011-09-02 17:12:42

UbuntuGNOME 3

2011-09-05 14:31:50

Ubuntu

2011-03-11 12:57:36

UBUNTU10.10安裝LAMP

2011-09-02 16:23:19

wubiUbuntu

2011-08-29 15:52:12

2011-08-29 11:16:27

Ubuntu

2011-09-14 15:04:47

Android 2.2

2009-12-07 09:52:06

Ubuntu9.10/

2011-08-29 14:53:16

UbuntuMySQLserver

2012-03-12 17:27:14

Ubuntu10.10正式結(jié)束

2010-11-18 09:40:08

2011-09-07 14:01:34

ubuntuPHP

2011-09-01 15:44:33

Ubuntu

2011-08-23 09:47:20

UbuntuU盤

2011-09-01 13:35:50

Ubuntu中文man

2011-09-06 11:11:29

ubuntu3D效果
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)