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.