天天看點

解決/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found一類的問題

首先如果您是root賬戶,您隻需輕輕的更新一下gcc就好了,否則,嗨嗨嗨

上正菜

  1. 無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
           

不好意思,因為我這篇文章很不完善,因為我想先休息一會兒,先做一個草稿,我會修改完善的。

繼續閱讀