redhat6.6/centos6.5离线升级gcc-4.4.7到4.8.2

所需软件:

1.    gmp-4.3.2.tar.bz2

2.    mpc-0.8.1.tar.gz

3.    mpfr-2.4.2.tar.gz

4.    gcc-4.8.2.tar.gz

安装步骤

1.  解压上述四个压缩文件,进行源码安装

2.  分别对gmp,mpfr,mpc执行命令(有序安装)

      ./configure; make; make install

3. 添加环境变量

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

3.  cd gcc-4.8.2,执行如下命令

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

        make -j4 (注:此过程非常耗时)

        make install

安装验证

1.  查看安装后gcc版本

        gcc -v 

主要解决问题

1.  编译安装某些软件包时提示编译错误,例如:在线安装R包-caret,xgboost,离线拷贝的xgboost包不能用等

相关内容

1.    解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题

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

解决方法:

1.    查看本机gcc动态库:

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

redhat6.6/centos6.5离线升级gcc-4.4.7到4.8.2_第1张图片
查看本机库

2.    在编译目录找到新生成动态链接库

find ./ -name "libstdc++.so*"

redhat6.6/centos6.5离线升级gcc-4.4.7到4.8.2_第2张图片
找到新库

3.    拷贝及创建软连接

cp ./stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.18 /usr/lib64

cd /usr/lib64

mv libstdc++.so.6 libstdc++.so.6.old

ln -s libstdc++.so.6.0.18 libstdc++.so.6

更新为新库

4.    验证动态库更新成功

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

你可能感兴趣的:(redhat6.6/centos6.5离线升级gcc-4.4.7到4.8.2)