Diese Beschreibung sieht ziemlich klar aus:http://sourceware.org/binutils/docs/binutils/ranlib.html
Wenn Sie also eine Sammlung von Objektdateien archivieren, sagen Sie:
$ ar r fruits.a apple.o orange.o pineapple.o
Dann laufen
$ ranlib fruits.a
erstellt einen Index des Inhalts von fruits.a und speichert den Index in fruits.a. Dies ist nützlich zum Verknüpfen und für den Fall, dass sich die Objekte gegenseitig aufrufen.
ranlib
fügt Objektdateien in einer statischen Bibliothek hinzu oder aktualisiert sie. Linker können beim Linken statische Bibliotheken verwenden, um Symbole bereitzustellen, die der Code benötigt, um zu funktionieren (im Gegensatz zu dem Lader, der nach ihnen in dynamischen Bibliotheken sucht, wenn er die ausführbare Datei ausführt).
ranlib generiert einen Index zum Inhalt eines Archivs und speichert ihn im Archiv. Der Index listet jedes Symbol auf, das von einem Mitglied eines Archivs definiert wird, das eine verschiebbare Objektdatei ist. Ein Archiv mit einem solchen Index beschleunigt das Verknüpfen mit der Bibliothek und ermöglicht Routinen in der Bibliothek, sich gegenseitig ohne Rücksicht auf ihre Platzierung im Archiv aufzurufen.
Quelle:ranlib-Manpage