Linux 服务器升级 gcc 【centOs 系统】

一、【gcc升级步骤】

1.下载gcc 4.8.5的压缩包

下载地址:http://ftp.gnu.org/gnu/gcc/

2.进入所下载目录,并下载

// 进入用户目录
user$ cd

// 创建下载目录 并进入该目录
user$ mkdir Download
user$ cd Download

Download$ wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2

2.解压缩

# tar -jxvf gcc-4.8.5.tar.bz2

3.进入解压目录,并执行命令

这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

# cd  gcc-4.8.5 
# ./contrib/download_prerequisites

4.建立一个目录供编译出的文件存放

# mkdir gcc-build-4.8.5
# cd gcc-build-4.8.5

5.生成Makefile文件

# ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

6.执行make ,执行安装

此处耗时大约1小时。不建议使用 make -j4(开启 4 个进程),可能报错【1.运行空间不够大;2.没有足够的进程管理】。

# make

// 执行安装
# make install

8.完成后,测试

# gcc -v
# g++ -v

二、【库升级】

gcc升级成功后,编程c++11的程序还不能正常编写。还需要进行库升级。源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似如下报错,这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

1.检查

# strings /usr/lib64/libstdc++.so.6 | grep GLIBC

2.找到 gcc 4.8.5 最新的库文件

# find / -name "libstdc++.so*"
/home/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-Linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/home/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
/home/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/home/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/home/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
/home/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
...
...
上面的libstdc++.so.6.0.19,就是目前4.8.5的新的库文件了。

3.复制这个库文件到指定目录,并修改软连接

# cp /home/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19  /usr/lib64

# cd /usr/lib64

# rm libstdc++.so.6

# ln -s libstdc++.so.6.0.19 libstdc++.so.6

4.重新检查

# 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
...
(完成) 

posted on 2018-02-22 15:18  TokeyJerry  阅读(1020)  评论(0编辑  收藏  举报