2010-10-05 16 views

Antwort

6

Die Verzeichnisse werden in der Reihenfolge durchsucht, in der sie in der Befehlszeile angegeben sind. Verzeichnisse, die in der Befehlszeile angegeben sind, werden vor den Standardverzeichnissen gesucht. Alle -L-Optionen gelten für alle -l-Optionen, unabhängig von der Reihenfolge, in der die Optionen angezeigt werden. LD_LIBRARY_PATH kann auch verwendet werden, um den Bibliothekssuchpfad zu ergänzen. Die Verzeichnissuche stoppt beim ersten Verzeichnis, das die passende Bibliothek enthält. obwohl

LD_LIBRARY_PATH ist heikel:

LD_LIBRARY_PATH 

Eine Liste von Verzeichnissen, in denen für die Bibliotheken suchen, angegeben mit die Option -l. Mehrere Verzeichnisse sind durch einen Doppelpunkt getrennt. In der am meisten allgemeinen Fall wird es durch ein Semikolon getrennt zwei Verzeichnislisten enthalten:

dirlist1; dirlist2 

Wenn ld mit einer beliebigen Anzahl von Vorkommen -L, wie in genannt wird:

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

dann ist der Suchpfad Bestellung:

  dirlist1 path1 . . . pathn dirlist2 LIBPATH 

Wenn die Liste der Verzeichnisse kein Semikolon enthalten, ist es 0.123.interpretiert als dirlist2.

LD_LIBRARY_PATH wird auch verwendet, um Bibliothek Suchverzeichnisse zu der Laufzeit-Linker anzugeben. Das heißt, wenn LD_LIBRARY_PATH in der Umgebung vorhanden ist, wird die Laufzeit-Linker die darin genannten Verzeichnisse suchen, vor seinem Standardverzeichnis für gemeinsam genutzte Objekte mit dem Programm bei der Ausführung verknüpft werden.

Bitte lesen Sie mehr darüber here.

+0

Nur zur Bestätigung, ist das richtig, dass LD_LIBRARY_PATH nach allen -L Optionen betrachtet wird? – Leonid

+0

Nein, nicht wirklich. Es hängt davon ab, ob es ein Semikolon enthält oder nicht. Wenn es nicht geht dann geht es nach allem -L, ansonsten Liste vor Semikolon geht zuerst, dann alle -L Optionen, dann Liste nach einem Semikolon. Ich werde meine Antwort aktualisieren, weil es schwer ist, dies in diesem großen Dokument zu finden. Beachten Sie auch, dass dies für Sun Linker gilt, nicht für GNUs. Ich bin mir nicht sicher, welches du benutzt. –