因为编译内核的需要, Ubuntu 自带的 gcc4.5 版本太高,需要使用 gcc4.3 ,因此需要安装低版本的 gcc ,我选择的是 gcc4.3.4.
( 1 )下载 deb 安装包,我下载的包为:
===================================
gcc-3.4-base_3.4.6-6ubuntu3_i386.deb 、
gcc-3.4_3.4.6-6ubuntu3_i386.deb 、
cpp-3.4_3.4.6-6ubuntu3_i386.deb 、
g++-3.4_3.4.6-6ubuntu3_i386.deb 、
libstdc++6-dev_3.4.6-6ubuntu3_i386.deb
==================================
cpp-4.3_4.3.4-10ubuntu1_i386.deb
g++-4.3_4.3.4-10ubuntu1_i386.deb
gcc-4.3_4.3.4-10ubuntu1_i386.deb 、
gcc-4.3-base_4.3.4-10ubuntu1_i386.deb
libstdc++6-4.3-dev_4.3.4-10ubuntu1_i386.deb
下载地址为: http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/
( 2 )安装这些包
apt-get install libmpfr1ldbl
dpkg --force-depends -i cpp-4.3_4.3.4-10ubuntu1_i386.deb gcc-4.3-base_4.3.4-10ubuntu1_i386.deb g++-4.3_4.3.4-10ubuntu1_i386.deb libstdc++6-4.3-dev_4.3.4-10ubuntu1_i386.deb gcc-4.3_4.3.4-10ubuntu1_i386.deb
( 3 )系统配置
安装完成之后,在系统里会多出: gcc-4.3
目前系统里有两个版本的 gcc ,缺省时 gcc4.5 ;需要改变系统的缺省配置:
增加 gcc4.5 和 gcc4.3 可选项
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 40
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 20
切换版本到 gcc-4.3
$ sudo update-alternatives --config gcc
现有 3 个可选项,它们都提供了“ gcc ”
* 0 /usr/bin/gcc-4.3 40 auto mode
1 /usr/bin/gcc-4.3 40 manual mode
2 /usr/bin/gcc-4.5 20 manual mode
要维持缺省值 [*] ,按回车键,或者键入选择的编号: 0
使用“ /usr/bin/gcc-4.5 ”来提供“ gcc ”。
至此编译成功。
编译内核时,我用 Ubuntu 自带的 gcc4.3 编译 2.6.26 时,不会出现问题;然而编译 2.6.14.4 时,就出现了inline 问题 ,这是因为 gcc 版本太高,故需要低版本的 gcc
还有一个问题:记得换一台大内存的计算机,1G在编译android时会出错,后来我直接用实机,2G内存才编译通过