在编译大多数开源库时,make命令将生成.la
文件,该文件将具有library_names
和current=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
现在的问题是:make仅凭
libcrack.so.2.9.0
如何生成数字为2.9.0
的version-info
? 最佳答案
通常libtool
库版本系统使用以下格式soname.so.<current-age>.<age>.<revision>
这就是为什么在示例中引用问题libcrack.so.(11-9).9.0 = libcrack.2.9.0
的原因。
更多详细信息,请参见library versioning