ubuntu12.04 下android4.0源碼編譯

jopen 12年前發布 | 48K 次閱讀 android4 Android開發 移動開發

經過幾波周折,終于在ubuntu上面成功編譯android4.0的源碼,為什么要編譯源碼呢,主要是在源碼的環境下做一下類似于需要底層框架支持的程序,比如說launcher或者其他占用資源特別多的應用程序。因為我的eclipse經常崩潰。好吧,廢話不多說了 開始吧 希望對您有用。其中部分資源也是我在網上搜索到的。

1、初始化編譯環境

(1)軟件需求:

    Python 2.5 -- 2.7, which you can download from python.org.

    GNU Make 3.81 -- 3.82, which you can download from gnu.org,

    JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. You can download both fromjava.sun.com.

    Git 1.7 or newer. You can find it at git-scm.com.

(2)安裝jsk1.6:

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

也可以自己去官網下載最新的1.6的jdk

(3)安裝32位的庫 我的是64位的操作系統

要安裝getlibs這么一個東西 去網上搜索,軟件中心里面我沒有找到。安裝完成后運行

tiger@tiger-desktop:~$ getlibs
會安裝一序列需要支持的32位的so

(4)運行下面操作,當然有些so是(3)已經完成的了

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_35/bin/java$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
這一個命令可能會出錯,別搭理他 繼續往下執行
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

目前所需環境基本上已經配置完成。別著急下面還有一些關鍵性的配置:

2.配置環境
(1)配置java環境

確保安裝了1.6最新版本的jdk

進行連接
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_35/bin/java

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_35/bin/javac

sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_35/bin/javadoc

sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_35/bin/jar

(2)配置gcc

通過gcc -v命令可以發現gcc庫在/usr/lib/gcc/i686-linux-gnu目錄下,該目錄下有當前系統支持的各種版本gcc庫 。在安裝gcc 4.4前該目錄下是沒有4.4目錄的,安裝gcc 4.4后該目錄下就會多出4.4這個目錄,且該4.4目錄下有各種相應庫文件。

ubuntu 32bit系統下安裝gcc 4.4的最好方法是僅用以下兩條命令,不需要其它命令,否則編譯時可能會出錯。
1    $sudo apt-get install gcc-4.4
2    $sudo apt-get install g++-4.4

裝完后進入到/usr/bin目錄下
1    $ls -l gcc

會顯示以下結果

    lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6
    -rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
    -rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6

發現gcc鏈接到gcc-4.6, 需要將它改為鏈接到gcc-4.4,方法如下:
1    $sudo mv gcc gcc.bak
2    $sudo ln -s gcc-4.4 gcc

同理,對g++也做同樣的修改:
1    $ls -l g++


lrwxrwxrwx 1 root root 7 2011-08-14 15:17 g++ -> g++-4.6
-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6

需要將g++鏈接改為g++-4.4:
1    $sudo mv g++ g++.bak
2    $sudo ln -s g++-4.4 g++

再查看gcc和g++版本號:
gcc -v
g++ -v
均顯示gcc version 4.4.6 ,說明gcc 4.4安裝成功。

 

提示bits/predefs.h:沒有那個文件或目錄 錯誤的

輸入sudo apt-get install gcc-multilib 即可

g++ selected multilib '32' not installed

sudo apt-get install g++-4.4-multilib

 

SDL_syswm.h:55: 致命錯誤

sudo apt-get install libx11-dev

 

/usr/bin/ld: cannot find -lz

sudo apt-get install lib32z1-dev


3.編譯

進入到android源碼跟目錄下面

   sudo source build/envsetup.sh

   sudo lunch full-eng

  sudo  make -j8(cpu的核數 乘2我的是4核)

編譯中可能會遇到一些錯誤

如果缺少庫的話 可以運行

sudo get-libs 庫名 來安裝相應的庫

常見問題請參考

http://wenku.baidu.com/view/52813b61f5335a8102d220b0.html

源文地址

http://source.android.com/source/initializing.html

轉自:http://blog.csdn.net/jzh2012/article/details/7984000

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!