所需软件:
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
2. 在编译目录找到新生成动态链接库
find ./ -name "libstdc++.so*"
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