2013-07-18 62 views
0

我升級了我的系統(到了Ubuntu 13.04),並在過程中的某個地方崩潰了:-(我在編譯東西時遇到了這個異常:gcc:加載共享庫時出錯 - >查找錯誤的庫版本

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/bin/as: 
error while loading shared libraries: 
libopcodes-2.22-system.so: cannot open shared object file: No such file or directory 

其實libopcodes- 2.22 -system.so不存在,但libopcodes- 2.23.2 -system.so一樣。 如果我從符號鏈接2.22至2.23的gcc失敗,只是另一個庫。

所以由於某種原因,它正在尋找錯誤的ve rsion。我試圖通過重新安裝gcc,binutils,libc6等來解決它,但問題仍然存在。

如何告訴gcc使用正確的共享庫版本?/gcc從哪裏獲取共享庫使用的信息?

THX

+1

gcc不會自行尋找2.22。您使用的其他一些庫鏈接到2.22。 – ROTOGG

+0

你知道任何方式進一步調查嗎?必須是系統庫..我試圖編譯的代碼是沒有任何依賴關係的單行hello世界。 gcc執行失敗,如下圖所示: – Eugene

+0

gcc執行失敗。沒有辦法解決這個問題。你係統內的某些東西壞了。我不熟悉Ubuntu。檢查或重新安裝gcc和binutils軟件包。 – rtlgrmpf

回答

2

感謝球員,你的評論讓我看在正確的地方。

這條路讓我懷疑:

/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/bin/as 

我想這一定是一個符號鏈接/usr/bin/as,但它暴露了/usr/x86_64-linux-gnu/bin是一個完整的複製/usr/bin - 不是最新的,因此與不正確的鏈接二進制文件。我不知道爲什麼整個bin目錄的副本在那裏,並被gcc用於支持/usr/bin

編譯器運行正常後/usr/x86_64-linux-gnu 被刪除。 編輯:更好地檢查意見,然後再做同樣的事情。

+1

嗯,不知道你是否已經爲此做了一個忙... Debian在一段時間之前切換到了多拱形。它看起來像是來自前多曲拱的轉變出錯了。 – rtlgrmpf

+0

謝謝,我會檢查。我沒有刪除目錄,但將其移動到另一個位置,所以我可以恢復和更新它或類似的東西 – Eugene