例如,我創建了一個名爲的共享庫libXXX.so.0.0.0,其中soname爲libXXX.so.0。那麼,是否需要創建一個名爲的符號鏈接libXXX.so.0並讓它指向真正的共享庫?或者我只需要創建一個名爲的符號鏈接libXXX.so?如何控制Linux上的共享庫版本問題?
此外,如果我更新庫到libXXX.so.0.0.1?
如果我安裝的系統庫路徑上的共享庫,如
/lib
或/usr/lib
,如何更新符號鏈接?使用 ldconfig?如果我在當前的本地文件夾上安裝共享庫,如何更新符號鏈接 ?
順便說一句,如何控制Makefile中的版本問題?我的意思是我需要添加一些命令,如ln -s或ldconfig?
非常感謝您的回覆!順便說一下,** ldconfig **命令的工作方式和時間? – injoy
** ldconfig **管理soname到路徑名轉換的緩存。(運行** ldconfig -p **查看這些項目。)它不知道或關心這些路徑名指向的微版本文件。此緩存可以減少在程序啓動時查找庫所需的時間,因爲加載器不再需要遍歷缺省庫目錄列表,以查找名稱與程序需要的soname相匹配的文件。 – ottomeister
我不完全理解@ottomeister評論。 ldconfig使得緩存對於程序在啓動時鏈接更快。還行吧。但是,ldconfig是否也查找新版本的庫?例如。我應該在安裝新庫版本時手動處理符號鏈接,還是將ldconfig自動爲我執行?我也相信我在手冊中找到了答案:'ldconfig創建了必要的鏈接並緩存到最近發現的共享庫中,但是您能否確認我沒有看到錯誤? – chao