为什么libtool运行ranlib来安装静态库?



我试图理解为什么libtool在安装静态库时运行ranlib。这是一个来自链接的例子:https://www.gnu.org/software/libtool/manual/html_node/Installing-libraries.html

$ libtool --mode=install cp libhello.la /usr/local/lib/libhello.la
cp libhello.la /usr/local/lib/libhello.la
cp .libs/libhello.a /usr/local/lib/libhello.a
ranlib /usr/local/lib/libhello.a

但是,索引表不是已经创建了吗?它不应该只是一个简单的复制操作吗?我发现在复制结束时运行ranlib是多余的,因为库已经有了索引。

谢谢。

在过去糟糕的日子里,ar没有创建索引。

libtool旨在在各种系统上运行,其中一些系统具有创建索引的ar,而另一些则没有。

为了兼容性,在安装静态库之后,它仍然调用ranlib来创建索引。

最新更新