Questa descrizione sembra abbastanza chiara:http://sourceware.org/binutils/docs/binutils/ranlib.html
Quindi, se archivi una raccolta di file oggetto, dì:
$ ar r fruits.a apple.o orange.o pineapple.o
Quindi correre
$ ranlib fruits.a
crea un indice del contenuto di fruits.a e memorizza l'indice in fruits.a. Questo è utile per il collegamento e nel caso in cui gli oggetti si chiamino a vicenda.
ranlib
aggiunge o aggiorna file oggetto in una libreria statica. I linker possono utilizzare librerie statiche durante il collegamento per fornire i simboli necessari al codice per funzionare (al contrario del caricatore che li cerca nelle librerie dinamiche durante l'esecuzione dell'eseguibile).
ranlib genera un indice del contenuto di un archivio e lo memorizza nell'archivio. L'indice elenca ogni simbolo definito da un membro di un archivio che è un file oggetto rilocabile. Un archivio con un tale indice velocizza il collegamento alla libreria e consente alle routine nella libreria di chiamarsi a vicenda indipendentemente dalla loro collocazione nell'archivio.
fonte:pagina man di ranlib