在Ubuntu 11.10 X64上编译Android源码

初次在Ubuntu 11.10 X64上编译ICS的源码,可能会遇到一些编译错误,不过解决方法也不是很难。
首先要清楚Android官方是支持在这个系统上编译Android的源码的,所以只要设置正确都是能编译成功的。
具体的参考此处http://source.android.com/source/initializing.html

有个依赖包lib32readline5-dev已经被废弃了,但是可以用lib32readline-gplv2-dev替代。
如果缺少什么依赖包的话一般安装一下就可以了,大多都是比较简单的

因为历史原因有些代码只能用老版本的gcc(g++)编译,而11.10上默认的版本又是比较新的4.6,所以我们需要安装老版本的gcc(g++)

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

网络上有些资料写的是可以通过update-alternatives来管理不同版本的gcc(g++),通过设置4.4版本为默认值,来达到默认启用4.4来编译。
也有通过手动修改符号链接指向gcc(g++)来启用4.4的。

实际上我们在这里不需要这么麻烦,只要机器上有4.4的编译器,并且在PATH目录中
只需要简单的指定make的参数就可以使用指定版本的编译器了

$ . build/envsetup.sh
$ lunch full-eng
$ make CC=gcc-4.4 CXX=g++-4.4 -j4

就比http://source.android.com/source/building.html上的编译指令多了两个参数
CC=gcc-4.4 CXX=g++-4.4
是不是很简单?

编译的时候可能会出些错误,比如
g++-4.4: selected multilib ’32’ not installed

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

fatal error: GL/glx.h: No such file or directory

sudo apt-get install libgl1-mesa-dev

常见的错误可以参考http://blog.csdn.net/sunboy_2050/article/details/6977386

One thought on “在Ubuntu 11.10 X64上编译Android源码”

Leave a Reply

Your email address will not be published. Required fields are marked *