linux gcc版本如何升级到gcc4.8.2

一、简易安装 
操作环境 Red-hat 6.2 64bit,yum安装自带版本4.4.7,不能支持C++11的特性,需要升级到4.8.2。

1.1 获取安装包并解压

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
tar -jxvf gcc-4.8.2.tar.bz2
  • 1
  • 2

当然,http://ftp.gnu.org/gnu/gcc 里面有所有的gcc版本供下载,最新版本已经有4.9.2啦.

1.2 下载供编译需求的依赖项 
参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

cd gcc-4.8.2 
./contrib/download_prerequisites 
  • 1
  • 2

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

mkdir gcc-build-4.8.2
cd gcc-build-4.8.2
  • 1
  • 2

1.4 生成Makefile文件

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

1.5 编译(注意:此步骤非常耗时)

make -j4
  • 1

-j4选项是make对多核处理器的优化。

1.6、安装

sudo make install
  • 1

二、验证安装

1.重启,然后查看gcc版本:

gcc -v
  • 1

2.写一个C++11特性的程序段 test.cpp,使用了shared_ptr

//test.cpp
#include <iostream>
#include <memory>
using namespace std;
int main()
{
      shared_ptr<int> pInt(new int(10));
      cout << *pInt << endl;
      return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3.验证:

g++ -std=c++11 -o test test.cpp
./test
  • 1
  • 2

如果找不到libstdc++.so.6中的GLIBCXX_3.4.15,请执行下面命令:

cp /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64
rm -rf /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6
  • 1
  • 2
  • 3

查看是否链接上:

ll /usr/lib64/libstdc++.so.6
lrwxrwxrwx 1 root root 19  9月 29 12:48 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.18

版权声明:本文为Kangshuo2471781030原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。