非root用户,conda环境下配置并使用其他版本gcc
背景
Linux环境下的gcc版本太低,有些需要编译的代码在低版本gcc(一般<4.9)下无法编译成功,报错
e.g. 有可能会报segmentation fault core dumped 这类错误。
此时不要想着搜segmentaiton fault core dumped 的角度解决。
解决
首先激活待配置环境
conda activate pytorch1.2
然后下载4.9.1版本的gcc(我遇到的问题是gcc版本<4.9的问题,所以下载了gcc=4.9.1)
conda install -c serge-sans-paille gcc_49
验证安装成功
gcc4.9 -v
可以看到,4.9.1版本的gcc已经安装在pytorch1.2的环境下面了
开始设置调用新安装的gcc
首先看下gcc使用的位置,cd到该位置
which gcc
cd /hd1/xxx/anaconda3/envs/pytorch1.2/bin/gcc
rm gcc
rm g++
ln -s /hd1/xxx/anaconda3/envs/pytorch1.2/bin/gcc-4.9 /hd1/lvyueming/anacoonda3/envs/pytorch1.2/bin/gcc
ln -s /hd1/xxx/anaconda3/envs/pytorch1.2/bin/g++-4.9 /hd1/lvyueming/anacoonda3/envs/pytorch1.2/bin/g++
此时,gcc–> gcc4.9
验证如下
但我这边还是报错,
ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20` not found
为了解决这个问题
在.bashrc文件中,加入下面语句,并source .bashrc。
为解决这个问题,参考了以下博客,表示感谢:
https://www.cnblogs.com/chenwenyan/p/13510173.html
export LD_LIBRARY_PATH=/hd1/xxx/anaconda3/envs/pytorch1.2/lib64/:$LD_LIBRARY_PATH
finished!