ubuntu12.04 下android4.0源码编译
经过几波周折,终于在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./ 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./source/initializing.html 转自:http://blog.csdn.net/jzh2012/article/details/7984000 |
|
来自: android之情殇 > 《android》