Самый простой способ задать путь загрузки — через переменную окружения
LD_LIBRARY_PATH
. Например, следующие команды задают путь загрузки,/opt/gdbm-1.8.3/lib
чтобы егоlibgdbm.so
можно было найти:$ LD_LIBRARY_PATH=/opt/gdbm-1.8.3/lib $ export LD_LIBRARY_PATH $ ./a.out Storing key-value pair... done.
Правильно ли, что LD_LIBRARY_PATH
это не встроенная переменная окружения Bash? В противном случае в ней нет необходимости export
.
Оболочка Bash используется PATH
для поиска внешней программы и PATH
является встроенной переменной среды Bash.
Оболочка Bash используется LD_LIBRARY_PATH
для поиска общих библиотек, которые используются программой для работы. Так почему же LD_LIBRARY_PATH
встроенная переменная окружения Bash не является таковой?
решение1
LD_LIBRARY_PATH
не используется оболочкой, а используется динамическим компоновщиком. Смотритеman ld.so
для получения подробной информации.
Если вы его не экспортируете, компоновщик его не увидит и не сможет с ним что-либо сделать.