2014-12-20 36 views
1

在autoconf中首次指定庫版本的正確方法是什麼?圖書館處於不穩定的狀態,我想它會是0.1.0,直到它爲公共API準備好了,應該是1.0.0。所以我把下面的configure.acautoconf中的庫版本字符串

AC_SUBST([FOO_SO_VERSION], [0:1:0]) 
AC_SUBST([FOO_API_VERSION], [0.1.0]) 

而且也Makefile.am

libfoo_la_LDFLAGS = -version-info $(FOO_SO_VERSION) 

雖然我得到這個文件:

libfoo.so.0.0.1 
+0

你在說什麼圖書館?它有一個pkgconfig版本嗎? –

+0

@BrettHale我正在研究的圖書館:P而且,是的。 –

+1

@ptomato的答案是處理版本控制的正確方法 - 但是*如果*您確定該庫僅用於內部使用,則您可以*使用'-release'標誌。你似乎總是在做一些有趣的事情:) –

回答

4

的。所以版本應該總是從0:0 :0。它不應該與您的項目的軟件版本號綁定。

Libtool版本號被稱爲current:revision:age並且不一定映射到任何特定平臺上的.so文件後綴。

這裏是一個this link給出的解釋摘要:

  • 增加每次製作發佈時間修訂
  • 增加當前值值並將修訂版設置爲0,每次更改API/ABI。
  • 當您對API/ABI進行向後兼容更改時,增加的年齡
  • 年齡設置爲0,當您對API/ABI進行向後不兼容的更改時。