2014-12-20 27 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进行向后不兼容的更改时。