Santiago_hao

 

Linux6.8系统离线升级GCC到4.8.2,以支持c++11

一、yum源配置

rhel-server-6.8-x86_64-dvd.iso上传到Linux系统media目录下

配置本地yum源

[root@localhost ~]#cd /media

[root@localhost media]# mkdir cdrom   #创建挂载点

[root@localhost cdrom]# mount -o loop /usr/src/rhel-server-6.8-x86_64-dvd.iso /media/cdrom   

#挂载

 

配置本地yum源

先把本机的yum源移除

[root@localhost cdrom]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# mkdir yum

[root@localhost yum.repos.d]# mv *.repo yum/

[root@localhost yum.repos.d]# ls

Yum

配置本地yum源

[root@localhost yum.repos.d]# vim centos-iso.repo

[centos-iso]

name=centos-iso

baseurl=file:///media/cdrom

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@localhost yum.repos.d]# yum clean all

 

[root@localhost yum.repos.d]# yum repolist

 

 

 

 

二、准备工作安装相应的依赖包

编译安装gcc之前,系统里必须先要通过yum安装老版本的GCC和依赖库,如果在X85_64系统下编译的话,还需要安装libgcc.i868 glibc-devel.i868才行

[root@localhost ~]# yum install gcc gcc-c++

 

 

 

[root@localhost ~]# yum install -y gcc texinfo-tex flex zip libgcc.i686 glibc-devel.i686

 

三、升级glibc到2.17

1、查看现有glibc版本:

[root@localhost build]# ldd --version

 

 

 

2、查看现有系统包中能安装的glibc版本:

[root@localhost ~]# strings /lib64/libc.so.6 |grep GLIBC_

 

可见,Centos6能够支持的最高版本也就是2.12了,所以,必须要到官网下载2.17版本手动进行安装了。

3、安装Glibc2.17

# tar –zxvf glibc-2.17.tar.gz

# cd glibc-2.17

# mkdir build

# cd build

# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

# make –j4

# make install

4、查看安装后的glibc版本:

[root@localhost build]# ldd –version

 

 

 

 

 

 

 

四、安装升级GCC

升级之前先解压GMP、MPFR和MPC三给依赖包,GPM是基础,MPC依赖MPFR

[root@localhost ~]# tar –xvf gmp-4.3.2.tar.bz2

[root@localhost ~]# cd gmp-4.3.2

[root@localhost gmp-4.3.2]# mkdir build

[root@localhost gmp-4.3.2]# cd build/

[root@localhost build]# ../configure

 

 

[root@localhost build]# make    #编译

 

 

[root@localhost build]# make install   #安装

 

 

[root@localhost ~]# tar –xvf mpfr-2.4.2.tar

[root@localhost ~]# cd mpfr-2.4.2

[root@localhost mpfr-2.4.2]# mkdir build

[root@localhost mpfr-2.4.2]# cd build

[root@localhost mpfr-2.4.2]# ../configure

 

 

[root@localhost mpfr-2.4.2]# make

 

 

[root@localhost mpfr-2.4.2]# make install

 

 

[root@localhost ~]# tar –xvf mpc-1.0.1.tar

[root@localhost ~]# cd mpc-1.0.1

[root@localhost mpc-1.0.1]# mkdir build

[root@localhost mpc-1.0.1]# cd build

[root@localhost build]# ../configure 

 

 

[root@localhost mpc-1.0.1]# make

 

 

[root@localhost mpc-1.0.1]# make install

 

 

解压gcc-4.8.2.tar.gz

[root@localhost ~]# tar -xvf gcc-4.8.2.tar.gz

[root@localhost ~]# cd gcc-4.8.2

[root@localhost gcc-4.8.2]# mkdir build-gcc-4.8.2

[root@localhost gcc-4.8.2]# cd build-gcc-4.8.2/

[root@localhost build-gcc-4.8.2]#  ../configure --prefix=/usr/local/gcc-4.8.2 -enable-languages=c,c++

--prefix=/usr/local/gcc-4.8.2表示配置安装的路径

-enable-languages=c,c++表示安装语言,这里只安装c和c++

 

 

[root@localhost build-gcc-4.8.2]# make      #这个时间很久,大概一两个小时

不出错的话就最好(我第一次安装的时候没有提示错误)

如果提示以下错误: configure: error: cannot compute suffix of object files: cannot compile

解决方法:设置环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

在重新make

如果再次提示错误

 

 

解决方法:

[root@localhost ~]# find -name libmpc.so.3

[root@localhost src]# whereis libmpc.so.3

libmpc.so: /usr/local/lib/libmpc.so /usr/local/lib/libmpc.so.3

[root@localhost build-gcc-4.8.2]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

[root@localhost build-gcc-4.8.2]# make 

 

 

[root@localhost build-gcc-4.8.2]# make install

 

 

[root@localhost lib]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC   #查看版本没有变

 

 

搜索新的链接库位置

[root@localhost ~]# find / -name libstdc++.so.6

 

 

移除老的链接库,然后关联新的链接库:

[root@localhost lib64]# mv /usr/lib64/libstdc++.so.6 /tmp

[root@localhost lib64]# cd /usr/lib64/

[root@localhost lib64]# ln -s /usr/local/gcc-4.8.2/lib64/libstdc++.so.6

[root@localhost lib64]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC

 

posted on 2021-03-15 12:48  Santiago_hao  阅读(441)  评论(0编辑  收藏  举报

导航