2010-10-05 2 views

risposta

6

Le directory vengono ricercate nell'ordine in cui sono specificate sulla riga di comando. Le directory specificate nella riga di comando vengono ricercate prima delle directory predefinite. Tutte le opzioni -L si applicano a tutte le opzioni -l, indipendentemente dall'ordine in cui appaiono le opzioni. LD_LIBRARY_PATH può anche essere utilizzato per integrare il percorso di ricerca della libreria. La ricerca nella directory si ferma nella prima directory contenente la libreria corrispondente.

LD_LIBRARY_PATH è difficile però:

LD_LIBRARY_PATH 

Una lista di directory in cui cercare per librerie specificate con l'opzione -l. Le directory multiple sono separate da due punti. In più caso generale, conterrà due elenchi directory separati da una virgola :

dirlist1; dirlist2 

Se ld è chiamato con qualsiasi numero di occorrenze di -L, come in:

ld . . . -Lpath1 . . . -Lpathn . . . 

poi l'ordinamento percorso di ricerca è:

  dirlist1 path1 . . . pathn dirlist2 LIBPATH 

Quando la lista di directory non contiene un punto e virgola, è 0.123.interpretato come dirlist2.

LD_LIBRARY_PATH viene anche utilizzato per specificare le directory di ricerca della libreria su il linker di runtime. Cioè, se LD_LIBRARY_PATH esiste nell'ambiente , il linker runtime ricercare le directory di nome in esso, prima della sua directory predefinita, per oggetti condivisi per essere collegati con il programma in esecuzione.

Si prega di leggere di più su di esso here.

+0

Giusto per confermare, è corretto che LD_LIBRARY_PATH sia considerato dopo tutte le opzioni -L? – Leonid

+0

No, non proprio. Dipende se contiene un punto e virgola o meno. Se non lo fa, dopotutto va -L, altrimenti elenca prima il punto e virgola, poi tutte le opzioni -L, quindi elenca dopo un punto e virgola. Aggiornerò la mia risposta, perché è difficile trovarla in quel grande documento. Si noti inoltre che questo si applica a Sun linker, non a quello di GNU. Non sono sicuro di quale stai usando. –