Warum ist „LD_LIBRARY_PATH“ keine integrierte Umgebungsvariable von Bash?

Warum ist „LD_LIBRARY_PATH“ keine integrierte Umgebungsvariable von Bash?

AusEine Einführung in GCC:

Der einfachste Weg, den Ladepfad festzulegen, ist über die Umgebungsvariable LD_LIBRARY_PATH. Die folgenden Befehle legen beispielsweise den Ladepfad /opt/gdbm-1.8.3/libso fest, dass libgdbm.sogefunden werden kann:

$ LD_LIBRARY_PATH=/opt/gdbm-1.8.3/lib
$ export LD_LIBRARY_PATH
$ ./a.out
Storing key-value pair... done.

Stimmt das, dass LD_LIBRARY_PATHes sich nicht um eine integrierte Umgebungsvariable von Bash handelt? Ansonsten besteht keine Notwendigkeit dafür export.

Eine Bash-Shell wird PATHzum Auffinden eines externen Programms verwendet und PATHist eine integrierte Umgebungsvariable von Bash.

Eine Bash-Shell verwendet sie LD_LIBRARY_PATHzum Auffinden der gemeinsam genutzten Bibliotheken, die für die Ausführung eines Programms erforderlich sind. Warum gibt es also keine LD_LIBRARY_PATHintegrierte Umgebungsvariable von Bash?

Antwort1

LD_LIBRARY_PATHwird nicht von der Shell verwendet, sondern vom dynamischen Linker. Sieheman ld.sofür Details.

Wenn Sie es nicht exportieren, sieht der Linker es nicht und kann nicht darauf reagieren.

verwandte Informationen