Re: [Cle-devel] libtabe naming convention
把
libtabe.so.<API version number>
做成指向
libtabe-<release number>.so.<API version number>
的 symbolic link 是否就可以解決這個問題?
cheers,
Ping
On Tue, 4 Dec 2001 thhsieh@linux.org.tw wrote:
> Hello,
>
> 目前 libtabe 的檔名是長這樣的:
>
> libtabe-0.2.5.so.0.2.1
>
> 其中 0.2.5 是 libtabe 的 release number (也就是 libtabe-0.2.5 版),
> 而 0.2.1 是其 API version number, 這是來自 libtool 所建議的,為的
> 是維持各版的 libtabe 與其「應用程式」(如 xcin) 之間,在 run-time
> dynamic link 時可以有適當的 compatibility。例如: 0.2.1 可以和 0.2.2,
> 但不能與 1.0.0 相容 .... 等。
>
> 就 library 的角度而言,其實 API version number 是比 release number
> 還要有意義的。例如下一版新出來的 libtabe 可能只修改了 tsi.src, 函
> 式庫本身完全沒變,自然函式庫本身是與前一版相容的。
>
> 然而,以目前的檔名命名規則:
>
> libtabe-<release number>.so.<API version number>
>
> 會造成: 就算 API version number 不變,但每次一改變 release number,
> 就會造成與前一版不相容,而造成 dynamic link 的錯誤,錯誤的發生原因
> 純粹是因為 library 的「名字」不一樣了。為了避免此情況,我想最好的
> 方式還是將檔名的命名規則改回:
>
> libtabe.so.<API version number>
>
> 也就是按照 info libtool 的建議。
>
> 那麼,如果我想知道目前系統的 libtabe 版本,怎麼辦呢?因為光看那些
> .so 的檔名已經不準了 .... (用 rpm 或 deb 來查的不算 :-)) 為了解決
> 此問題,我將所有的 utilities: tsiadd, tsidel .... 等都加入了可以
> 顯示版本資訊的部分,例如,您只要執行:
>
> tsiadd
>
> 就會列出:
>
> tsiadd: libtabe-0.2.5
> Usage: tsiadd -d <TsiDB> [-f input file -r -y]
> -d <TsiDB> path to TsiDB
> -f <input file> input file in plain text (default: stdin)
> -r incorporate reference count (default: not)
> -y incorporate yin data (default: not)
> -v verbose output for debugging
>
> 如此就知道目前安裝的是 libtabe-0.2.5 版了。
>
> 以上的改變已進 cvs :-) 在此感謝 Roger So <roger.so@sw-linux.com>
> 兄的提醒 :-)
>
>
> T.H.Hsieh
> _______________________________________________
> Cle-devel mailing list
> Cle-devel@linux.org.tw
> http://www.linux.org.tw/mailman/listinfo/cle-devel
>
Reply to: