2013-09-23 40 views
0

我收到以下錯誤啓動我的程序:LDD庫沒有發現

錯誤而載入共享庫:libnetcdf.so.6:無法打開共享對象文件:沒有這樣的文件或目錄

關鍵是libnetcdf.so.6是圖書館的舊版本,我刪除了它並構建了新版本。

所以,當我嘗試ldd我看到:

libnetcdf.so.7 => /usr/local/lib/libnetcdf.so.7 (0x00007f70f8c4b000) 

而且

爲什麼這個古老的參考?我能做些什麼來解決?

回答

3

您將需要重新鏈接您的應用程序li​​bnetcdf.so.7因此應用程序將查找,而不是0.6

你可能有一個符號鏈接,該鏈接會看沒有版本號( libnetcdf.so)如果不存在,你可能需要重新鏈接之前創建它:

ln -s libnetcdf.so.7 libnetcfd.so 

如果無法重新連接的應用程序,那麼你可以創建符號鏈接,使應用程序的外觀在您的較新的庫(儘管這可能會導致分段錯誤,如果庫版本不是二進制兼容的)指向實際的.so文件:

ln -s libnetcfd.so.7 libnetcfd.so.6 

這將導致應用程序找到它需要的共享對象,但不是理想的解決方案。

+0

感謝您的回答! – user2617702

+0

沒問題 - 很高興幫助。你能將這標記爲可接受的解決方案嗎? –