Dynamic-Linking

理論上,在一個 RHEL 版本中創建的 .so 文件可以在任何其他 RHEL 版本中使用嗎?

  • December 2, 2015

我已經完成了源包的編譯並安裝在自定義路徑中,創建了二進製文件和一些共享對像庫並且該工具正在執行。

可以在另一個 RHEL 版本中使用相同的安裝(至少,理論上可以在另一個 RHEL 版本中使用這些庫嗎?)

我所需要的至少是圖書館應該工作。

稍微解釋一下會更有幫助。

同意@siblynx的評論,glibc 提供了一系列兼容性。它這樣做的方式(在版本 6 的發布範圍內)是使用符號版本控制:當每個符號(函式或數據)被引入時,都有一個相應的版本附加到符號上,以便有一種方法可以連結到自動正確的版本。

如果行為(主要是二進制介面)發生了變化,您的應用程序將使用舊版本介面載入。往回走,版本可能不存在,應用程序無法成功載入。

在更粗略的層面上,RHEL 上的大多數共享庫也是版本化的,但 glibc 通過單個共享庫中的符號版本支持兼容性範圍。

進一步閱讀:

引用自:https://unix.stackexchange.com/questions/246790