紅帽系統執行程式找不到共享庫問題

2021-10-01 21:53:18 字數 772 閱讀 7764

在centos上執行乙個使用protobuf的程式時,提示了如下錯誤

第乙個原因是沒有主機上沒有安裝該共享庫,導致連線失敗

第二種原因是已經安裝了該共享庫,但是程式執行呼叫該共性庫時,程式按照預設路徑找不到該共享庫,因為很多共享的開源庫安裝的預設安裝的路徑時/usr/local/lib,而紅帽系統一般只會預設在/lib、/use/lib和動態庫配置檔案中尋找共享庫,因此就會出現找不到的問題

1、直接將共享的開源庫安裝到/lib或者/usr/lib目錄中,然後執行一下ldconfig命令

2、如果和共享庫安裝在了其他非預設路徑下,例如/usr/local/lib下,需要在配置檔案中將該目錄寫入

# vim /ect/ld.so.conf
在配置檔案中加上共享庫的目錄(如圖中的/usr/local/lib)然後執行ldconfig

ldconfig的作用

主要是在預設的搜尋目錄(/lib和/usr/lib)以及動態庫的配置檔案/ect/ld.so.conf內所列的目錄下,搜尋出可共享的動態鏈結庫(lib*.so.*),進而建立出動態裝入程式(ld.so)所需要的鏈結和快取檔案,快取檔案預設/etc/ld.so.cache,此檔案中儲存已排序好的動態鏈結庫名列表

通常當使用者安裝了乙個新的動態共享庫時,就需要手動呼叫ldconfig命令,確保系統將新安裝的動態庫新增到動態庫配置檔案中

debian 下面居然找不到php執行程式

用了這麼多的linux bsd居然沒見過安裝過php後找不到php的可執行檔案,今天這樣的事就遇到了,在debian下面,我想在ubuntu下面也會有類似的情況,經過多方的查詢 whereis php find type f name php 都找不到。到了相關的技術論壇也有問過,可能大家都是用的編...

debian 下面居然找不到php執行程式

用了這麼多的linux bsd居然沒見過安裝過php後找不到php的可執行檔案,今天這樣的事就遇到了,在debian下面,我想在ubuntu下面也會有類似的情況,經過多方的查詢 whereisphp find typef name php 都找不到。到了相關的技術論壇也有問過,可能大家都是用的編譯方...

linux新增動態庫後可執行程式找不到的問題

linux為了加快程式執行時對共享庫的定位速度,避免使用搜尋路徑查詢共享庫的低效率,所以是直接讀取庫列表文件 etc ld.so.cache 從中進行搜尋。etc ld.so.cache 是個非文字的資料文件,不能直接編輯,他是根據 etc ld.so.conf 中配置的搜尋路徑由 sbin ldc...