libstdc++.so.6: cannot open shared object file: No such file or directory的問題

來源:互聯網
上載者:User

安裝cmake的時候,./bootstrap這一步走不通,說是缺乏c++編譯器,開啟指定的log日誌後,發現根源在於libstdc++.so.6找不到的問題,在網上搜了很多方法,出現問題的原因有以下幾種:

1./usr/lib下面沒有libstc++.so.6 這個通過安裝軟體包,然後建立軟連結即可。

2./usr/lib 與/usr/local/lib 或/usr/lib64 下有不同版本的libstc++.so.6 ,導致衝突,

 參見這篇日誌的分析 http://blog.csdn.net/jindingwang/article/details/7569466

解決方案在上篇日誌中寫到了。

以在/usr/lib64版本不一致為例(我遇到的情況),

 在/usr/lib 下面的libstdc++.so.6指向 的版本是6.0.3 然而在/usr/lib64中也存在一個libstdc++.so.6指向 的版本是6.0.8 。因此將6.0.3的版本拷貝到/usr/lib64下面(其實我的那個lib64下面有6.0.3於是我就沒有再copy),重建立立符號連結。

但是這一步之後 ./bootstrap 沒有再報c++編譯器的問題,而是報出了以下錯誤:

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.5' not found

經查是由於libstdc++.so.6.0.*版本過低導致的,看來6.0.3連結不行,於是我就將/usr/lib64下面的6.0.8的版本拷至

/usr/lib下,重新連結,發現又回到了找不到libstdc++.so.6的情況。。。。後來我下載了6.0.13的版本將其分別複製到兩個目錄下,在各自的目錄中分別建立軟連結。依然是找不到Libstdc++.so.6。然後又測試將lib64下面的軟串連指向lib下面的6.0.13,依舊失敗。反方向建立軟串連依舊是報之前的錯誤。好悲催。。。。

 

後來,使用Locate 命令找到,在/usr/local/lib64下面還有個6.0.9的包,於是將這個包複製到/usr/local/lib和/usr/lib, /usr/lib64下面,在各自的目錄下分別建立軟串連。最終命令運行成功。

 

猜測是因為/usr/local/lib下面我之前將.so.6 和 6.0.*均刪除的緣故?經測試並不是這個原因。。。還是因為跟/usr/local/lib64下的.so.6檔案連結的是自己的6.0.9的版本會與13衝突?但第一次統一為6.0.3時,為什麼不與6.0.3的版本衝突呢?

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.