CentOS 中安裝軟體後運作,有時會遇到usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ...)的錯誤。
如果是64位系統報錯資訊如下:
./filezilla: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ...)
這是因為沒有GLIBCXX_3.4.15,或是更高的版本。
那到底是什麼原因呢,老實說我也不清楚,輸入指令查詢一下:
[root@localhost ~]# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
我們看到目前GCC版本中的确沒有GLIBCXX_3.4.15。
64位系統指令為:
[root@localhost ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
下載下傳新版本,位址:http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_i386.deb(這是debian系統下的包名,centos下解壓後也能用)
64位系統:
http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_amd64.deb
假設下載下傳的檔案放在/download/software/。
解壓:
[root@localhost software]# ar -x libstdc++6_4.7.2-5_i386.deb && tar zxvf data.tar.gz
解壓後出現/download/software/usr目錄;
[root@localhost software]# cd /download/software/usr/lib/i380-linux-gun
[root@localhost i386-linux-gnu]# cp libstdc++.so.6.0.17 /usr/lib
[root@localhost i386-linux-gnu]# /usr/lib
[root@localhost lib]# rm libstdc++.so.6
[root@localhost lib]# ln libstdc++.so.6.0.17 libstdc++.so.6
注意64位系統為
[root@localhost software]# cd /download/software/usr/lib/x86_64-linux-gnu
[root@localhost x86_64-linux-gnu]# cp libstdc++.so.6.0.17 /usr/lib64
[root@localhost x86_64-linux-gnu]# /usr/lib
[root@localhost lib64]# rm libstdc++.so.6
[root@localhost lib64]# ln libstdc++.so.6.0.17 libstdc++.so.6
重建立立軟連接配接,我們再輸入指令查詢一下結果:
[root@localhost lib]# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
已經安裝好GLIBCXX_3.4.15啦。
重新運作安裝的軟體,應該沒問題啦。
本文轉自 拾瓦興閣 51CTO部落格,原文連結:http://blog.51cto.com/ponyjia/1827695