A maneira mais simples de definir o caminho de carregamento é através da variável de ambiente
LD_LIBRARY_PATH
. Por exemplo, os comandos a seguir definem o caminho de carregamento para/opt/gdbm-1.8.3/lib
quelibgdbm.so
possa ser encontrado:$ LD_LIBRARY_PATH=/opt/gdbm-1.8.3/lib $ export LD_LIBRARY_PATH $ ./a.out Storing key-value pair... done.
É correto que LD_LIBRARY_PATH
não seja uma variável de ambiente interna do Bash? Caso contrário, não há necessidade export
disso.
Um shell Bash é usado PATH
para localizar um programa externo e PATH
é uma variável de ambiente integrada do Bash.
Um shell Bash usa LD_LIBRARY_PATH
para localizar as bibliotecas compartilhadas das quais um programa depende para ser executado, então por que não é LD_LIBRARY_PATH
uma variável de ambiente integrada do Bash?
Responder1
LD_LIBRARY_PATH
não é usado pelo shell, é usado pelo vinculador dinâmico. Verman ld.so
para detalhes.
Se você não exportá-lo, o vinculador não o verá e não poderá agir de acordo.