首先如果您是root账户,您只需轻轻的升级一下gcc就好了,否则,嗨嗨嗨
上正菜
- 无root账户安装gcc,我直接安装的是最新版,可以从清华的免费镜像来下载。
#没有root权限如何安装gcc到用户目录,这里是gcc-9.2.0
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz
#解压
tar -zxvf gcc-9.2.0.tar.gz
cd gcc-9.2.0/
#这里安装依赖包
./contrib/download_prerequisites(这里说一个大误区,很多人都会自己额外安装其它的包,不需要)
#重新建立目录
mkdir objdir
cd objdir
编译安装
../configure --disable-checking --enable-languages=c,c++ --disable-multilib --prefix=/path/to/install/gcc-9.2 --enable-threads=posix
make -j32 && make install
#替换GCC,在.bashrc文件里面
export PATH=/path/to/install/gcc-9.2/bin:/path/to/install//gcc-9.2/lib64:$PATH
export LD_LIBRARY_PATH=/path/to/intall/gcc-9.2/lib/:$LD_LIBRARY_PATH
#一定要确保安装路径在$LD_LIBRARY_PATH和$PATH之前,这样安装的程序才能取代之前系统默认的程序
2.也就是进行替换库
要记住哪里出问题,就替换那个目录的库
首先检查以下那个库里的文件少没少,比如我的如果是 /home/zsh/anaconda3/envs/RNA_Seq/bin/…/lib/
这里我查看到底少没少,确实少了新的版本
strings /home/zsh/anaconda3/envs/RNA_Seq/bin/../lib/libgomp.so.1 | grep 'GOMP'
那我就直接使用命令
ls -l /usr/lib64/libstdc++.so.6
这是这种形式的软链接
/usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
find ”libgomp.so.*“|less
这样找到了我的gcc里的文件
之后重复strings命令,就可以查看是否包含目标版本(正常的应该包含)
之后把这个文件复制到出问题的目录里面
cp /home/zsh/software/gcc-9.2/objdir/stage1-x86_64-pc-linux-gnu/libgomp/.libs/libgomp.so.1.0.0 /home/zsh/anaconda3/envs/RNA_Seq/bin/../lib/
3.最后把软链接改一下
rm -rf libstdc++.so.6
重新使用新的库来建立连接
ln -s libgomp.so.1.0.0 libstdc++.so.6
不好意思,因为我这篇文章很不完善,因为我想先休息一会儿,先做一个草稿,我会修改完善的。