Ubuntu上搭建android BSP的開發編譯環境 && 設定定時編譯任務 && Ubuntu系統中SI老報write error錯誤 && ubu

來源:互聯網
上載者:User

(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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.