標籤:x86_64 load sage 本地 bsp 它的 linux 自己的 查看
在linux下遇到了一個這樣的問題,使用anaconda時,它的安裝庫裡的檔案被提示:缺失 libstdc++.so.6: version’GLIBCXX_3.4.20’。後來經過查看資料知道了原來是由於 libstdc++.so.6的版本過低造成的;再重新找一個高版本的就可以了;由於GCC的版本其實很高的,所以呢,我認為我的電腦的其它檔案的庫檔案裡應該有比這版本高的;所以,在自己的電腦裡找找;
問題解決:
1. 先觀察anaconda 檔案夾下的庫裡面的libstdc++.so.6是什嗎?
[email protected]:~/anaconda1/lib$ ls -l | grep libstdc++.so.6lrwxrwxrwx 1 yinheyi yinheyi 19 7月 27 15:48 libstdc++.so -> libstdc++.so.6.0.19lrwxrwxrwx 1 yinheyi yinheyi 19 7月 27 23:12 libstdc++.so.6 -> libstdc++.so.6.0.19-rwxr-xr-x 2 yinheyi yinheyi 1055192 9月 19 2015 libstdc++.so.6.0.19
看出:libstdc++.so.6是一個軟連結,它連結到了實際的動態庫檔案:libstdc++.so.6.0.19;
2.再來看看libstdc++.so.6.0.19裡有什麼樣的版本的GLIBCXX?運行如下命令得到:
[email protected]:~/anaconda1/lib$ strings libstdc++.so | grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH
裡面確實沒有version’GLIBCXX_3.4.20’,所以呢,需要找一個新的啊;
3.找一個更高版本的libstdc++.so.6: 使用locate命令來查查本地有沒有:
[email protected]:~/anaconda1/lib$ locate libstdc++.so.6/home/yinheyi/anaconda1/lib/libstdc++.so.6/home/yinheyi/anaconda1/lib/libstdc++.so.6.0.19/home/yinheyi/anaconda1/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6/home/yinheyi/anaconda1/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6.0.19/usr/lib/libstdc++.so.6/usr/lib/x86_64-linux-gnu/libstdc++.so.6/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20-gdb.py
在檔案夾 /usr/lib/x86_64-linux-gnu/裡確實有一個: libstdc++.so.6.0.20。 查看它裡面的GLIBCXX,發現正是我們需要的:
[email protected]:~/anaconda1/lib$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 | grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_3.4.20GLIBCXX_DEBUG_MESSAGE_LENGTH
4. 最後實施:
首先把libstdc++.so.6.0.20 複製到 anaconda 的庫檔案夾下,然後刪除原來的軟連結 libstdc++.so.6,建立新的指向libstdc++.so.6.0.20的軟連結;
原來的libstdc++.so.6,如下:
lrwxrwxrwx 1 yinheyi yinheyi 19 7月 27 23:12 libstdc++.so.6 -> libstdc++.so.6.0.19
假設已經刪除掉了原來的libstdc++.so.6,現在建立新的指向libstdc++.so.6.0.20的軟連結:
ln -s libstdc++.so.6.0.20 libstdc++.so.6
再來看看現在的新的libstdc++.so.6,如下:
lrwxrwxrwx 1 yinheyi yinheyi 19 7月 27 24:12 libstdc++.so.6 -> libstdc++.so.6.0.20
解決;
linux系統下的缺失 libstdc++.so.6: version’GLIBCXX_3.4.20’的問題: