Centos6 gcc4.4.7升级到高版本

in linux with 0 comment

查看系统当前版本:

[root@yx-ct6 ~]# gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

下载并解压源码包(此处我下载的版本为gcc4.8)

ftp下载地址包含各版本


cd /usr/local/src
wget http://gcc.parentingamerica.com/releases/gcc-4.8.5/gcc-4.8.5.tar.bz2
tar -jxvf gcc-4.8.5.tar.bz2

编译

cd gcc-4.8.5
./contrib/download_prerequisites
mkdir /usr/local/src/gcc-build-4.8.5
cd /usr/local/src/gcc-build-4.8.5
../gcc-4.8.5/configure -enable-checking=release -enable-languages=c,c++ -disable-multilib   
make -j4     ##多核编译,加快编译速度
make install

切换GCC到新版本

确定新安装的GCC的路径,一般默认在/usr/local/bin下。可以先updatedb,然后locate gcc-4.8|tail找一下

gcc动态库检查是否已替换为新版本

源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。

[root@yx-ct6 ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
find / -name "libstdc++.so*"
cd /usr/lib64
cp /usr/local/src/objdir/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19 ./
rm -rf libstdc++.so.6               #删除原来软连接
ln -s libstdc++.so.6.0.22 libstdc++.so.6      #将默认库的软连接指向最新动态库
ln -s /usr/local/bin/gcc /usr/bin/gcc    ##替换老版本命令文件
[root@blog lib64]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

文章参考:
https://www.cnblogs.com/lzpong/p/5755678.html
http://blog.csdn.net/wsclinux/article/details/59482845

Responses