摘要:

    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

  下载地址为:http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/

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)

参考:http://thirday.blog132.fc2blog.net/blog-entry-1.html