Eu sei
export LD_LIBRARY_PATH=xxxxx
permitirá que o kernel pesquise a biblioteca de destino neste caminho.
mas por que atribuí-lo como':'
export LD_LIBRARY_PATH=:
Qual é a função? Funciona se .so estiver no caminho atual.
A propósito, quando separamos caminhos, não deveríamos usar ';' ?
ex:
export LD_LIBRARY_PATH=foo1;foo2
Responder1
LD_LIBRARY_PATH é usado pelo vinculador dinâmico e não pelo kernel. O nome do vinculador dinâmico varia, mas é algo como /lib64/ld-linux-x86-64.so.2.
Está documentado por man ld.so
. No meu sistema diz
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.
Usar dois pontos tem a pequena vantagem de não precisar de aspas, assim ;
como um caractere especial para o shell. Também concorda com o uso de dois pontos no valor da variável PATH.
Quanto ao motivo LD_LIBRARY_PATH=:
, sugiro comprar um livro ou guia melhor.