红联Linux门户
Linux帮助

redhat9上用rpm包方式升级gcc3.2到gcc3.4.6

发布时间:2009-08-25 21:28:10来源:红联作者:superyongzhe
因为项目需要把linux版本降为redhat9,发现gcc是3.2版本的,将原来的代码改好编译,总是返回multiple definition of ' __i686.get_pc_thunk.bx'错误,链接器返回'ld returned 1 exit statux'错误,查阅网上资料说是gcc版本低导致的问题,于是将gcc升级到3.4.6版本,记录以下是过程,以备以后查阅。

1,下载gcc3.4.6版本相应的rpm包

  ftp://mirror.switch.ch/mirror/scientificlinux/40rolling/i386/SL/RPMS/ 这个网址可以下载到相应的RPM包。需要下载的RPM包如下:

  cpp-3.4.6-11.i386.rpm
  gcc-3.4.6-11.i386.rpm
  glibc-2.3.4-2.43.i386.rpm
  glibc-common-2.3.4-2.43.i386.rpm
  glibc-devel-2.3.4-2.43.i386.rpm
  glibc-headers-2.3.4-2.43.i386.rpm
  glibc-kernheaders-2.4-9.1.103.EL.i386.rpm

  2,下载gcc3.4.6版本所需的binutils相应版本的源码包
  http://ftp.gnu.org/gnu/binutils/这个网址可以直接下载到需要的源码包,我这里使用的是binutils-2.17.tar.bz2,看网上资料,升级gcc3.4.6最少需要2.15版本的binutils。

  3,编译安装binutils-2.17.tar.tar
  #tar jvxf binutils-2.17.tar.tar
  #cd binutils-2.17
  #./configure
  #make
  #make install
  新建终端执行#ld -v

  GNU ld version 2.17

  我们的binutils已经成功升级成2.17版本了。

  4,安装rpm包

  安装顺序以及命令如下:
  #rpm -Uvh --nodeps --replacefiles glibc-kernheaders-2.4-9.1.103.EL.i386.rpm
  #rpm -Uvh --nodeps --replacefiles glibc-common-2.3.4-2.43.i386.rpm
  #rpm -Uvh --nodeps --replacefiles glibc-headers-2.3.4-2.43.i386.rpm
  #rpm -Uvh --nodeps --replacefiles glibc-devel-2.3.4-2.43.i386.rpm
  #rpm -Uvh --nodeps --replacefiles glibc-2.3.4-2.43.i386.rpm
  #rpm -Uvh --nodeps --replacefiles cpp-3.4.6-11.i386.rpm
  #rpm -Uvh --nodeps --replacefiles gcc-3.4.6-11.i386.rpm


  安装完毕之后,我们用命令可以查看相关版本

  #gcc -v/* 查看gcc版本 */
5,安装完成之后,重新编译原来出错的代码,编译通过。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/w0911h/archive/2009/08/04/4406752.aspx
文章评论

共有 1 条评论

  1. lvncwet 于 2009-08-26 00:02:54发表:

    友情支持