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/lib
so fest, dasslibgdbm.so
gefunden 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_PATH
es sich nicht um eine integrierte Umgebungsvariable von Bash handelt? Ansonsten besteht keine Notwendigkeit dafür export
.
Eine Bash-Shell wird PATH
zum Auffinden eines externen Programms verwendet und PATH
ist eine integrierte Umgebungsvariable von Bash.
Eine Bash-Shell verwendet sie LD_LIBRARY_PATH
zum Auffinden der gemeinsam genutzten Bibliotheken, die für die Ausführung eines Programms erforderlich sind. Warum gibt es also keine LD_LIBRARY_PATH
integrierte Umgebungsvariable von Bash?
Antwort1
LD_LIBRARY_PATH
wird nicht von der Shell verwendet, sondern vom dynamischen Linker. Sieheman ld.so
für Details.
Wenn Sie es nicht exportieren, sieht der Linker es nicht und kann nicht darauf reagieren.