首先如果您是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
不好意思,因為我這篇文章很不完善,因為我想先休息一會兒,先做一個草稿,我會修改完善的。