如何生成library_names中的版本号?

时间:2016-04-20 04:52:11

标签: makefile gnu-make ld libtool

在编译大多数开源库时,make命令会生成.la文件,该文件将包含library_namescurrent=11 age=9 revision=0版本信息。

我了解版本信息current=11 age=9 revision=0是从 Makefile.am 中的标记version-info生成的。通过了解版本信息,make如何生成库名?

示例:对于libcrack.so

dlname='libcrack.so.2'
# Names of this library.
library_names='libcrack.so.2.9.0 libcrack.so.2 libcrack.so'

# Version information for libcrack.
current=11
age=9
revision=0

版本信息在Makefile.am中指定,如下所示

libcrack_la_LDFLAGS = -version-info 11:0:9

现在的问题是:如何通过libcrack.so.2.9.0生成2.9.0来生成version-info

1 个答案:

答案 0 :(得分:0)

通常libtool库版本系统使用以下格式

soname.so.<current-age>.<age>.<revision>

这就是为什么在问题中引用的示例libcrack.so.(11-9).9.0 = libcrack.2.9.0

更详细的信息可以在library versioning

找到