
Nehmen wir an, ich habe eine Binärdatei test
und sie verwendet gemeinsam genutzte Bibliotheken
a.so
b.so
c.so
Ich habe Probleme, die Binärdatei auszuführen, da eine der verknüpften Bibliotheken auf eine andere Bibliothek verweist d.so
, die anscheinend der Übeltäter ist. Ich weiß jedoch nicht, welche Bibliothek diejenige ist, die sie verknüpft, da es in Wirklichkeit etwa 20 Bibliotheken statt 3 sind und es sehr zeitaufwändig ist, sie alle durchzugehen. ldd
gibt Ihnen nur die Liste der Bibliotheken, auf die die Binärdatei direkt verweist.
Darüber hinaus scheint es nicht nur eine Indirektionsebene zu geben, sondern mehrere. Mit anderen Worten, es scheint so etwas wie zu geben a.so -> x.so -> blabla.so -> d.so
.
Gibt es eine intelligente Möglichkeit, das gesamte Abhängigkeitsdiagramm zu visualisieren oder die genaue Abhängigkeitskette zu finden, die zur Bibliothek führt d.so
?
Mit anderen Worten, was ich möchte, ist ungefähr Folgendes:
a.so -> something.so
-> second.so
-> third.so
b.so -> x.so -> blabla.so -> d.so
-> stuff.so
c.so -> something.else -> yetanotherlib.so
oder eine vereinfachte Version, bei der ich sagen würde, ich möchte herausfinden, wie d.so
mit der Binärdatei verknüpft ist, und es würde ausspucken
a.so -> x.so -> blabla.so -> d.so
Ich hoffe das macht Sinn.
Antwort1
Was Sie wollen ldd -v
, ist, dass die Abhängigkeitsketten ausführlich angezeigt werden.