[Android]Ubuntu编译AOSP
(2013-02-28 16:11:40)
一、下载AOSP
Lunch menu... pick a combo:
1. full-eng
2. full_x86-eng
3. simulator
4. full_passion-userdebug
5. full_crespo-userdebug
gcc -v
看了下版本号,果然是最新的版本4.7.6.据说得用gcc4.4.于是输入下面命令
sudo apt-get install gcc-4.4
开始安装gcc4.4.安装完毕后,输入下面命令,安装g++
接着输入下面命令查看gcc文件:
$ 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.用下面命令进行修改:
sudo mv gcc gcc.bak
五、再次编译AOSP
再次输入下面命令:
$ cd /home/androidsource/
没有AOSP,当然就没法编译了。如果下载,可参看
这篇博文。
二、前期准备
然后在命令行模式下进入AOSP目录。假设我们的android源代码放在/home/androidsource/目录下,那么输入下面命令来执行envsetup.sh文件。
$ cd /home/androidsource/
. build/envsetup.sh
这句执行得很快。接着我们输入下面命令:
$ lunch
这时候会弹出下面提示:
这时候我们输入1就可以了。也可以直接输入如下命令:
$ lunch full-eng
那就不需要选择,命令直接执行了。
我们编译后在模拟器中运行,所以选择full
我们选择最大的权限,也就是eng
这就是full-eng参数的意思。
很不幸,这里就开始报错了。
/bin/bash: bison:command not found
三、配置JDK
这说明JDK的配置不正确,我们可以根据
这篇文章来配置JDK。
接着我们尝试编译AOSP,输入下面命令:
$ make -j4
果然,失。。。。。败。。。。。了!
四、安装GCC4.4
问题如下:
make: *** [out/host/linux-x86/obj/ EXECUTABLES/aapt_ intermediates/Command.o] Error 1 搜索了一下,说由于gcc版本太高会产生这个问题。于是输入
sudo apt-get install g++-4.4
lrwxrwxrwx 1 root root
-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.用下面命令进行修改:
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
再查看,发现现在已经链接到gcc-4.4了。
同理,用
$ ls -l g++*
查看g++的文件,同样改变链接到g++-4.4
sudo mv g++ g++.bak
再查看gcc和g++的版本号,
gcc -v
g++ -v
现在都为4.4了。
再输入下面命令安装下面组件:
sudo apt-get install g++-4.4 -multilib
到这里为止,GCC的安装就完成了。
. build/envsetup.sh
$ lunch full-eng
$ make -j4
开始欢快的刷屏了。