che cos'è ranlib?


10

Ho usato un sistema MacOSX per un po ', ma solo di recente ho iniziato a colpire le viscere. Ho trovato una guida che mi dice di eseguire 'sudo ranlib /usr/local/lib/libjpeg.a'(installando libjpeg). Ho letto il manuale di ranlib e ho provato a cercarlo online. Semplicemente non capisco. Quali risorse devo cercare per saperne di più o qualcuno può fornire una spiegazione concisa sul suo utilizzo? Grazie in anticipo!

Risposte:


6

ranlibaggiunge o aggiorna i file oggetto in una libreria statica . I linker possono utilizzare le librerie statiche durante il collegamento al fine di fornire simboli necessari al codice per funzionare (al contrario del caricatore che li cerca nelle librerie dinamiche durante l'esecuzione dell'eseguibile).


Ciao Ignacio, grazie per la risposta. Questo significa che se eseguo ranlib su una libreria, sarà disponibile per l'uso ogni volta che un linker tenta di "fare riferimento" a esso? Come viene rimosso?
Ying

ranlibè usato per creare e modificare le librerie. Spetta al linker usarli, di solito passando la posizione della libreria e / o il nome sulla riga di comando. Vedi gli argomenti -Le -lsu gcc per i dettagli.
Ignacio Vazquez-Abrams,

5
Ma non lo fa aranche questo? Qual è la differenza?
greatwolf,

16

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 correndo

$ ranlib fruits.a

crea un indice del contenuto di fruits.a e memorizza l'indice in fruits.a. Ciò è utile per il collegamento e nel caso in cui gli oggetti si chiamino l'un l'altro.


"ranlib genera un indice per il contenuto di un archivio e lo memorizza nell'archivio". Sembra più qualcosa da combinare tare direi non molto chiaro.
Codice Bling del

8

ranlib genera un indice per il 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 trasferibile. Un archivio con un tale indice accelera il collegamento alla libreria e consente alle routine nella libreria di chiamarsi a vicenda senza tener conto del loro posizionamento nell'archivio.

fonte: pagina man ranlib

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.