2010-09-16 80 views
9

我的客戶端有一些開發人員編寫了一個小型C++命令行應用程序,以在其Linux服務器上運行。在服務器(運行Fedora 11)中的一個,當我執行的應用程序,我得到以下錯誤:libstdC++。so.5:無法打開共享目標文件 - 但安裝了庫並且是最新的

error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory 

很顯然,我做的第一件事是

yum install libstdc++ 

,但我得到

Package libstdc++-4.4.1-2.fc11.x86_64 already installed and latest version 

所以圖書館已經存在並且是最新的。通常對我來說,這些錯誤表明缺少一個庫。那麼我應該在哪裏看下?

回答

9

libstdc++-4.4.1-2.fc11.x86_64安裝libstdc++.so.6。您需要compat-libstdc++-33-3.2.3-66.x86_64包才能獲得libstdc++.so.5。 (不要符號鏈接!libstdc++.so.5libstdc++.so.6是不兼容的。)

0

你是否檢查過軟件包是否安裝了libstdC++。so.5而不是其他版本?這是你最可能的問題。

+2

-1不是一個翔實的答案。 – 2010-09-16 22:49:14

+1

這不回答問題。這應該是一個評論。 – 2016-01-11 16:35:19

3

libstdC++。so.5是標準C++庫的一個非常舊的版本。

做一個yum search libstdc++,你必須安裝compat的-的libstdC++封裝之一。

14

rpm因此,回購瞭解共享庫名稱以及提供它們的內容。所以

yum install 'libstdc++.so.5'

wiil安裝任何必要的,如果回購有它。

在你的情況下,它會獲取compat-libstdC++ - 33-3.2.3-66.i586.rpm及其32位代碼,如果你沒有它們,因爲你試圖運行的二進制文件顯然32位

6

yum install compat-libstdC++ - 33爲我解決了這個問題。

0

如前所述的咖啡館和亞倫,運行yum install compat-libstdc++-33 libstdc++.so.5 -y工作對我來說,當我有一個類似的錯誤。

我跑進了,唯一的缺點,我沒有正確的回購簽出,所以我不得不跑yum-config-manager --enable rhel-7-server-optional-rpms訪問文件。如果您使用的不是RedHat 7,您需要搜索正確的回購。

您可以始終通過首先運行yum provides libstdc++.so.5來檢查您是否擁有正確的回購站。

相關問題