非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!