Esta descripción parece bastante clara:http://sourceware.org/binutils/docs/binutils/ranlib.html
Entonces, si archiva una colección de archivos de objetos, diga:
$ ar r fruits.a apple.o orange.o pineapple.o
Luego corriendo
$ ranlib fruits.a
crea un índice del contenido de fruit.a y almacena el índice en fruit.a. Esto es útil para vincular y en caso de que los objetos se llamen entre sí.
ranlib
agrega o actualiza archivos de objetos en una biblioteca estática. Los vinculadores pueden usar bibliotecas estáticas cuando se vinculan para proporcionar los símbolos que el código necesita para funcionar (a diferencia del cargador que los busca en bibliotecas dinámicas cuando ejecuta el ejecutable).
ranlib genera un índice del contenido de un archivo y lo almacena en el archivo. El índice enumera cada símbolo definido por un miembro de un archivo que es un archivo de objeto reubicable. Un archivo con dicho índice acelera la vinculación a la biblioteca y permite que las rutinas de la biblioteca se llamen entre sí sin tener en cuenta su ubicación en el archivo.
fuente:página man de ranlib