ubuntu10.4系统下GCC降级安装 升级安装GCC

ubuntu10.4环境下默认的GCC版本为4.4.3,因为编译环境的GCC版本为3.2.2,想在ubuntu上使用编译环境版本的GCC,故须要将GCC版本降级到3.2.2。GCC在新版本加入了一些高级特性,致使从GCC4.4.3不能直接降级到3.2.2。本文经过尝试,能够经过阶段性的降级方案,即先从GCC4.4.3降级到 GCC3.4.4版本,再从GCC3.4.4降级到GCC3.2.2。如下是重要的操做步骤和过程当中问题的解决方法。 linux

(1)能够在http://gcc.gnu.org/网站,经过任何一个镜像站点来下载GCC3.4.4版本和GCC3.2.2版本,本文的下载路径为ftp://gd.tuwien.ac.at/gnu/gcc/releases /gcc-3.4.4/gcc-3.4.4.tar.bz2和ftp://gd.tuwien.ac.at/gnu/gcc/releases/gcc- 3.2.2/gcc-3.2.2.tar.bz2。 c++

(2)安装GCC3.4.4。首先在编译环境下执行gcc –v来获取GCC的configure信息,本文中其结果为: ubuntu

xxx/ABC /home/xxx # gcc -v bash

Readingspecs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs 网站

Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux .net

Thread model: posix get

gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5) it

在降级的设备上将gcc-3.4.4.tar.bz2解压以后进入解压目录,参考编译环境中GCC的配置来配置当前的GCC3.4.4。 io

./configure --prefix=/usr/local/gcc-3.4.4/ --mandir=/usr/local/gcc-3.4.4/share/man --infodir=/usr/local/gcc-3.4.4/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++ 编译

其中的prefix、mandir、infodir均可以根据本身的须要来设置,configure以后执行make && make install。

其中在make的过程当中会出现如下错误:www.it165.net

In function 'open',

inlined from 'collect_execute' at ./collect2.c:1537:

/usr/include/bits/fcntl2.h:51: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT in second argument needs 3 arguments

解决的方法是修改gcc/collect2.c的1537行,将原来的

redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT);修改成

redir_handle = open (redir, O_WRONLY, O_TRUNC | O_CREAT);

即将原来open调用中的2个参数修改成3个参数,而后从新进行make和make install便可完成GCC3.4.4的安装,

(3)为了在某些场景下继续使用GCC4.4.3能够经过如下方式保留GCC4.4.3,方法是在gcc的安装路径/usr/bin/目录下按照如下步骤操做。

mv gcc gcc-4.4.3

mv g++ g++-4.4.3

ln –s /usr/local/gcc-3.4.4/bin/gcc gcc

ln –s /usr/local/gcc-3.4.4/bin/g++ g++

这样GCC4.4.3和GCC3.4.4就能够共同存在了。

(4)安装了GCC3.4.4,还要修改/etc/bash.bashrc在其末尾增长如下内容,以让其正确连接到它须要的库。

LD_LIBRARY_PATH=/usr/local/ gcc-3.4.4/lib

export LD_LIBRARY_PATH

经过以上操做从新source /etc/bash.bashrc后就可使用gcc3.4.4了。

(5)一样按照上面的方法能够在GCC3.4.4的基础上安装GCC3.2.2,所不一样的是在configure的过程当中须要指定不一样的安装路径。安装完成以后执行gcc –v能够看到如下输出。

root@xxx-desktop:/usr/local/gcc-3.4.4/bin# gcc -v

Readingspecs from /usr/local/gcc-3.2.2//lib/gcc-lib/i686-pc-linux-gnu/3.2.2/specs

Configured with: ./configure --prefix=/usr/local/gcc-3.2.2/ --mandir=/usr/local/gcc-3.2.2/share/man --infodir=/usr/local/gcc-3.2.2/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++

Thread model: posix

gcc version 3.2.2

相关文章
相关标签/搜索