摘要:
ubuntu10.10默认安装的是4.4版本的编译器,现在我们要安装3.4的编译器,可是为什么要安装比默认版本要低的编译器呢,主要是因为要编译x86-qtopia,4.4版本的编译器对语法要求很高,导致编译qtopia源码时有很多的错误,当然你也可以通过修改源码来完成编译,但还有一个比较偷懒的做法,那就是使用3.4编译器。
介绍:
下面开始吧:
1、sudo apt-get install ncurses-dev
2、sudo apt-get install bison
3、sudo apt-get install flex
4、sudo apt-get install build-essential
我的提示都是最新版本了,不用安装。
5、修改gcc版本,默认是4.4.5的,改为3.4.6的
下载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
下载地址为:
6、自己新建一个目录,把这些deb包拷贝进去,我的是/mnt/share/gcc-3.4.6
接下来在此目录下执行下面的命令:
# cd /mnt/share/gcc-3.4.6
# dpkg -i *.deb
查看下安装的结果如下:
# ls /usr/bin/gcc* -ll
lrwxrwxrwx 1 root root 7 2011-04-09 16:33 /usr/bin/gcc -> gcc-4.4
-rwxr-xr-x 1 root root 85552 2008-01-04 04:57 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 224488 2010-09-28 02:43 /usr/bin/gcc-4.4
-rwxr-xr-x 1 root root 16090 2008-01-04 04:52 /usr/bin/gccbug-3.4
7、增加gcc3.4.6和gcc4.4.5的可选项
# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 40
# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 30
8、切换版本到gcc-3.4
# update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-3.4 40 自动模式
1 /usr/bin/gcc-3.4 40 手动模式
2 /usr/bin/gcc-4.4 30 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:1(自己手动输入要选择的默认值,输入1,设置默认为3.4版本的)
9、查看当前gcc版本
# gcc -v
Reading specs from /usr/lib/gcc/i486-linux-gnu/3.4.6/specs
Configured with: ../src/configure -v --enable-languages=c,c++,f77,pascal --prefix=/usr --libexecdir=/usr/lib --with-gxx-include-dir=/usr/include/c++/3.4 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --program-suffix=-3.4 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --with-tune=pentium4 i486-linux-gnu
Thread model: posix
gcc version 3.4.6 (Ubuntu 3.4.6-6ubuntu3)
终端操作如下:
root@lxf-virtual-machine:~# cd /mnt/share/gcc-3.4.6
root@lxf-virtual-machine:/mnt/share/gcc-3.4.6# dpkg -i *.deb
(正在读取数据库 ... 系统当前共安装有 151107 个文件和目录。)
正预备替换 cpp-3.4 3.4.6-6ubuntu3 (使用 cpp-3.4_3.4.6-6ubuntu3_i386.deb) ...
正在解压缩将用于更替的包文件 cpp-3.4 ...
选中了曾被取消选择的软件包 g++-3.4。
正在解压缩 g++-3.4 (从 g++-3.4_3.4.6-6ubuntu3_i386.deb) ...
选中了曾被取消选择的软件包 gcc-3.4。
正在解压缩 gcc-3.4 (从 gcc-3.4_3.4.6-6ubuntu3_i386.deb) ...
正预备替换 gcc-3.4-base 3.4.6-6ubuntu3 (使用 gcc-3.4-base_3.4.6-6ubuntu3_i386.deb) ...
正在解压缩将用于更替的包文件 gcc-3.4-base ...
选中了曾被取消选择的软件包 libstdc++6-dev。
正在解压缩 libstdc++6-dev (从 libstdc++6-dev_3.4.6-6ubuntu3_i386.deb) ...
正在设置 gcc-3.4-base (3.4.6-6ubuntu3) ...
正在设置 cpp-3.4 (3.4.6-6ubuntu3) ...
正在处理用于 man-db 的触发器...
正在设置 gcc-3.4 (3.4.6-6ubuntu3) ...
正在设置 libstdc++6-dev (3.4.6-6ubuntu3) ...
正在设置 g++-3.4 (3.4.6-6ubuntu3) ...
root@lxf-virtual-machine:/mnt/share/gcc-3.4.6# ls /usr/bin/gcc*
/usr/bin/gcc /usr/bin/gcc-3.4 /usr/bin/gcc-4.4 /usr/bin/gccbug-3.4
root@lxf-virtual-machine:/mnt/share/gcc-3.4.6# ls /usr/bin/gcc* -ll
lrwxrwxrwx 1 root root 7 2011-04-09 16:33 /usr/bin/gcc -> gcc-4.4
-rwxr-xr-x 1 root root 85552 2008-01-04 04:57 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 224488 2010-09-28 02:43 /usr/bin/gcc-4.4
-rwxr-xr-x 1 root root 16090 2008-01-04 04:52 /usr/bin/gccbug-3.4
root@lxf-virtual-machine:/mnt/share/gcc-3.4.6# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 40
update-alternatives: 使用 /usr/bin/gcc-3.4 来提供 /usr/bin/gcc (gcc),于 自动模式 中。
root@lxf-virtual-machine:/mnt/share/gcc-3.4.6# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 30
root@lxf-virtual-machine:/mnt/share/gcc-3.4.6# update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-3.4 40 自动模式
1 /usr/bin/gcc-3.4 40 手动模式
2 /usr/bin/gcc-4.4 30 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:1
root@lxf-virtual-machine:/mnt/share/gcc-3.4.6# gcc -v
Reading specs from /usr/lib/gcc/i486-linux-gnu/3.4.6/specs
Configured with: ../src/configure -v --enable-languages=c,c++,f77,pascal --prefix=/usr --libexecdir=/usr/lib --with-gxx-include-dir=/usr/include/c++/3.4 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --program-suffix=-3.4 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --with-tune=pentium4 i486-linux-gnu
Thread model: posix
gcc version 3.4.6 (Ubuntu 3.4.6-6ubuntu3)