[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: