.png)
Qual é a sequência de caminhos pesquisados para carregar um arquivo objeto compartilhado?
Estou tentando executar um executável que tenta carregar um arquivo de objeto compartilhado. O arquivo do objeto compartilhado pode ser encontrado em /usr/lib/x86_64-linux-gnu/
.
Tenho dois usuários, vamos ligar para eles user1
e user2
. user1
pode executar o executável, mas user2
encontra o erro: não é possível abrir o arquivo de objeto compartilhado: libicuuc.so
Ambos os usuários têm o mesmo arquivo LD_LIBRARY_PATH
. O que está faltando?
Responder1
homem ldconfigpode ajudá-lo
/etc/ld.so.cache File containing an ordered list of libraries found
in the directories specified in /etc/ld.so.conf, as
well as those found in /lib and /usr/lib.
mas sua distribuição pode conter outras informações além das minhas, então você deve ler a sua.
Outra maneira de decidir quais/quais bibliotecas estão vinculadas ao seu executável é usar olddprograma Um exemplo:
ldd /bin/echo
linux-vdso.so.1 => (0x00007ffc2277a000)
libc.so.6 => /lib64/libc.so.6 (0x0000003edc200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003edbe00000)