Warum export LD_LIBRARY_PATH= zuweisen:

Warum export LD_LIBRARY_PATH= zuweisen:

Ich weiß

export LD_LIBRARY_PATH=xxxxx

ermöglicht dem Kernel, in diesem Pfad nach der Zielbibliothek zu suchen.

aber warum es zuweisen als':'

export LD_LIBRARY_PATH=:

Was ist die Funktion? Es funktioniert, wenn .so im aktuellen Pfad ist.

Sollten wir beim Trennen von Pfaden nicht „;“ verwenden?

ex:

export LD_LIBRARY_PATH=foo1;foo2

Antwort1

LD_LIBRARY_PATH wird vom dynamischen Linker verwendet, nicht vom Kernel. Der Name des dynamischen Linkers variiert, lautet aber etwa /lib64/ld-linux-x86-64.so.2.

Es ist dokumentiert durch man ld.so. Auf meinem System heißt es

LD_LIBRARY_PATH
          A list of directories in which to search for ELF libraries at execution
          time.  The items in the list are separated by either colons or
          semicolons, and there is no support for escaping either separator.

Die Verwendung von Doppelpunkten hat den kleinen Vorteil, dass keine Anführungszeichen erforderlich sind, da es ;sich um ein Sonderzeichen für die Shell handelt. Dies stimmt auch mit der Verwendung von Doppelpunkten im Wert der PATH-Variable überein.

Was die Gründe dafür angeht LD_LIBRARY_PATH=:, empfehle ich die Besorgen eines besseren Buchs oder Ratgebers.

verwandte Informationen