
Digamos que tengo un binario test
y usa bibliotecas compartidas.
a.so
b.so
c.so
Tengo problemas para ejecutar el binario, porque una de las bibliotecas vinculadas vincula otra biblioteca d.so
que parece ser la culpable. Sin embargo no sé qué biblioteca es la que lo vincula, ya que en realidad hay como 20 bibliotecas en lugar de 3 y lleva mucho tiempo revisarlas todas. ldd
solo le brinda la lista de bibliotecas que el binario vincula directamente.
Además de eso, parece que no hay un nivel de indirección, sino varios. En otras palabras, parece que hay algo así a.so -> x.so -> blabla.so -> d.so
.
¿Existe alguna forma inteligente de visualizar el diagrama completo de dependencias o de cómo encontrar la cadena de dependencia exacta que conduce a la biblioteca d.so
?
En otras palabras, lo que quiero es algo como esto:
a.so -> something.so
-> second.so
-> third.so
b.so -> x.so -> blabla.so -> d.so
-> stuff.so
c.so -> something.else -> yetanotherlib.so
o una versión simplificada donde diría que quiero encontrar cómo d.so
está vinculado al binario y escupiría
a.so -> x.so -> blabla.so -> d.so
Espero que esto tenga sentido.
Respuesta1
Lo que desea es ldd -v
: esto indicará detalladamente las cadenas de dependencia.