2011-03-21 78 views
0

我目前正在處理共享庫,有一件事情我不是很瞭解。我將從維基百科開始引用:共享庫的管理/文件名

Unix和類似Unix的平臺更常用到術語共享庫或共享對象;因此,.so文件擴展名最常出現在這種環境中識別共享庫文件 - 通常後面跟着另一個點和一個版本號(例如libc.so.6)。

聽起來不太困惑,是吧?那實際上是。我只是看看我的/ usr/lib目錄......很多.so文件。但我不明白的是:有時候我有一個以上的文件(例如libz.so - libz.so.1 - libz.so.1.2.5) - 確定不同的版本號,所以沒問題...這是沒有問題的,但在多個庫的情況下,除了一個文件外,其他所有文件都只是指向一個真實文件的符號鏈接。 所以我簡單的問題:爲什麼?爲什麼會有整體文件,幾乎相同的文件名,然後是到另一個文件的正確鏈接。這是什麼,只可能出現一次或兩次...

感謝

回答

1

這樣做是如此,因爲它需要的程序可以依賴於具體的某個版本庫的原因。

例如,一個程序可能會說「我需要庫」。 libz.so的當前默認版本將指向libz.so.1.2.5。

另一個程序可能會說「我需要版本1的libz」。 libz.so.1的當前默認版本指向libz.so.1.2.5。

libz.so.1.2.5大多存在,因此您確切知道您安裝的是哪個版本。您可以有多個版本,並根據需要切換符號鏈接,但通常不會這樣做。