ldd
no Linux fornecerá a lista de todas as bibliotecas compartilhadas das quais um determinado binário depende. Geralmente, isso é muito mais extenso do que as bibliotecas listadas na linha de comando do vinculador usada para criar o binário: incluirá a maioria, senão todas, as dependências dessas bibliotecas.
É possível determinar apenas a lista de bibliotecas que foram vinculadas explicitamente (ou seja, as dependências diretas) e, em caso afirmativo, como?
Você pode usar
readelf -d
para despejar a seção "dinâmica" do binário. Isso incluirá bibliotecas NECESSÁRIAS.Por exemplo, comparando
ldd
comreadelf
on/bin/ls
:Você também pode fazer isso em
.so
arquivosSe você planeja listar dependências diretas recursivamente, use
lddtree
from pax-utils:(Isso usa python-pyelftools internamente.)