如何在32位Ubuntu 11.10 下编译Android 4.0.1源码和goldfish内核

一 准备工作1安装java sdk 6

(1)从jdk官方网站Oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-513648.html下载 jdk-6u29-linux-i586.bin文件。

(2)执行jdk安装文件

$ chmod a+x jdk-6u29-linux-i586.bin $ jdk-6u29-linux-i586.bin

(3)配置jdk环境变量

$ sudo vim /etc/profile#JAVA EVIRENMENT export JAVA_HOME=/usr/lib/java/jdk1.6.0_29 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存后退出编辑,并重启系统。

2 安装依赖包

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \ x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils

3 用repo工具下载源码

(1)初始化repo

$ chmod a+x ~/bin/repo$ export PATH=$PATH:~/bin(导出环境变量)

…(输入用户名和邮箱名)$ repo sync -j5…(此处用5个线程开始下载源码,下载过程及其漫长,需要耐心等待)

二 编译源码1 开始编译

$ source build/envsetup.sh including device/samsung/maguro/vendorsetup.shincluding device/samsung/tuna/vendorsetup.shincluding device/ti/panda/vendorsetup.shincluding sdk/bash_completion/adb.bash$ make -j4(此处用4个线程编译)

编译完成后,会看到类似的输出:

Target ram disk: out/target/product/generic/ramdisk.imgTarget userdata fs image: out/target/product/generic/userdata.imgInstalled file list: out/target/product/generic/installed-files.txt

2 编译遇到的问题

编译错误:

<命令行>:0:0: 错误: “_FORTIFY_SOURCE”重定义 [-Werror]<built-in>:0:0: 附注: 这是先前定义的位置cc1plus:所有的警告都被当作是错误make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] 错误 1

原因:

因机器上的gcc版本过高,需替换成4.4.6重新进行编译。

解决方法:

1)安装4.4版本的gcc 和g++

$ sudo apt-get install gcc-4.4$ sudo apt-get install g++-4.4

2)设置gcc版本,使gcc链接到gcc-4.4

$ ls -l /usr/bin/gcc*lrwxrwxrwx 1 root root7 2011-11-01 23:56 /usr/bin/gcc -> gcc-4.6-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 /usr/bin/gcc-4.4-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 /usr/bin/gcc-4.6$ cd /usr/bin$ sudo mv gcc gcc.bak$ sudo ln -s gcc-4.4 gcc

3)设置g++版本,使g++链接到g++-4.4

$ sudo mv g++ g++.bak$ sudo ln -s g++-4.4 g++

4)设置完毕后,重新进行编译即可

3 从模拟器启动编译后的镜像文件

1)设置环境变量:

export PATH=~/android/out/host/linux-x86/bin:$PATHexport ANDROID_PRODUCT_OUT=~/android/out/target/product/generic

其中linux-x86/bin存放模拟器emulator工具,product/generic存在编译后的镜像文件。

2)启动模拟器

$ emulatoremulator: WARNING: system partition size adjusted to match image file (162 MB > 66 MB)

启动后的截图:

,寂寞的人总是记住生命中出现的每一个人,

如何在32位Ubuntu 11.10 下编译Android 4.0.1源码和goldfish内核

相关文章:

你感兴趣的文章:

标签云: