(1)下載基於linux平台的JDK。不管是編譯android系統還是在eclipse中建立.apk應用軟體的開發,都需要這個。在終端中執行:apt-get install sun-java5-jdk,安裝完後執行javac -version可驗證安裝成功與否。
(2)下載基於linux平台的eclipse,解壓。使用跟XP上的eclipse相同。
(3)在android官網下載基於linux的android SDK,解壓。
(4)在eclipse中點擊軟體更新,升級android的ADT外掛程式,方便android應用軟體開發。並匯入android SDK路徑,設定AVD。
(5)利用apt-get install安裝一些編譯常用工具包: flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip make libncurses5-dev zlib1g-dev libsdl1.2-dev libsdl1.2debian。可以用gcc --version,檢驗gcc是否安裝成功及版本。
(6)安裝交叉編譯器,一般拷貝到某個目錄下就可以了,比如是/usr目錄,然後在.bashrc添加環境變數即可。例如:vi ~/.bashrc,然後加上export PATH=$PATH:/usr/arm-eabi-4.4.0/bin。
具體使用時,碰到的問題如下:
(1)在核心代碼中運行menu config時,出現少ncurses庫錯誤。ncurses是字元終端下螢幕控制的基本庫。可能很多新開發的程式都不使用了,不過如果要編譯一些老程式,還經常遇得到。執行命令 apt-get install libncurses5-dev
(2)一些常用工具的安裝,比如apt-get install subversion。其它一些工具諸如perl,python一般會預設系統內建,可以通過which命令來確認是否安裝,會得到安裝路徑。
================================================================================================================================
有些時候我們在伺服器資源緊張無法編譯的情況下,可以設定在伺服器上的定時任務讓其在轉鐘之後執行編譯任務。設定定時任務的命令是:at 02:50,進入命令列:
warning: commands will be executed using /bin/sh
at> cd ~/
at> mkdir tst899
at> <EOT>
分別執行進入特定項目根目錄,執行編譯命令,斷行符號後按CTRL+D退出命令列即可。之後,用atq命令可以查看有多少定時任務已經被提交。
============================================================================================================================
利用SAMBA從WIN7訪問ubuntu,對代碼建立的source insight工程,開啟後過一段時間就會提示錯誤說工程需要rebuild,有時又提示write error。一直找不到具體原因,後來發現SI工程的幾個檔案,都是nobody nogroup的使用者跟組許可權,跟其他檔案有明顯不同。因此,使用chown改變工程檔案的使用者跟組許可權,問題解決。
================================================================================================================================
以前ubuntu的系統是10.04的,在上面編譯MTK的android codebase一直正常。後來出於某種原因用OS內建的新力得管理器升級系統到12.04後,MTK的代碼編譯就出錯了。具體出錯原因:編譯時間提示gcc錯誤,用check-env核查確實發現gcc識別失敗。
後來跟同事詢問得知,應該是升級ubuntu後gcc版本過高所致。即用gcc4.4可以編譯,而12.04帶的是gcc4.6。所以只需恢複成gcc4.4即可。步驟是:
(1)首先在終端使用gcc -v,可以獲得gcc庫所在的目錄,我執行後發現現在系統確實都使用的是gcc4.6。
(2)所以需要安裝gcc4.4,一般使用:apt-get install gcc-4.4和apt-get install g++-4.4即可。如果在/usr/bin目錄下用ls -l gcc*得到如下結果:
說明gcc4.4已經安裝了。所需要做的就是把gcc連結修改成指向gcc-4.4,而不是gcc-4.6,方法是:
mv gcc gcc.bak
ln -s gcc-4.4 gcc,得到
前一條備份,後一條修改連結。對應的,g++版本也要改成指向g++-4.4,而非g++-4.6。修改結果如下:
(3)修改上述要求後,再用gcc -v查看
可知其已修改成4.4了。之後再編譯或者check-env都可以成功了,省去重裝系統的麻煩。
除了以上編譯出錯之外,還出現過編譯preloader提示“BUILD FAIL. need wine tool to sign pre-loader binary”,只需要apt-get install wine即可,需要注意的是一定要確保安裝完畢。
參考原文:http://hi.baidu.com/hyemiletoe/item/0403f331f12017179cc65ed9