ldd funktioniert nicht auf dynamisch gelinkte
Ich habe eine Binärdatei, die verwendet eine Reihe von .also-Dateien.
bash-3.00$ file foo
foo: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.21, dynamically linked (uses shared libs), not stripped
Aber wenn ich ldd auf diese Datei, es ist nicht in der Lage zu Holen die .also Dateien die binäre abhängig ist.'
bash-3.00$ ldd foo
not a dynamic executable
bash-3.00$
readelf zeigt die Liste der freigegebenen Bibliotheken verwendet, die durch die Binär -..
bash-3.00$ readelf -d foo
Dynamic segment at offset 0x17c810 contains 70 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libdl.so.2]
Warum ist ldd nicht in der Lage zu Holen die Bibliothek Abhängigkeiten in diesem Fall ?
Du bist wahrscheinlich auf einem 64-bit-Umgebung. Die Installation von 32-bit-Kompatibilitäts-libs sollte das Problem beheben.
Danke. Das war es dann. In ubuntu kann ich installieren von ia32-libs und ldd gearbeitet. Aber in RedHat aussieht, gibt es keine schnelle und einfache Möglichkeit zum installieren der 32-bit-Kompatibilitäts-libs.
Danke. Das war es dann. In ubuntu kann ich installieren von ia32-libs und ldd gearbeitet. Aber in RedHat aussieht, gibt es keine schnelle und einfache Möglichkeit zum installieren der 32-bit-Kompatibilitäts-libs.
InformationsquelleAutor Manohar | 2013-05-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie ein Kommentar sagt, Sie habe versucht, mit ldd auf 64-bit-system zu inspizieren, um eine 32-bit-ELF-Objekt. ldd verwendet die standard-dynamic-linker auf die Spur, die Abhängigkeiten, so dass, wenn Sie Ihre Plattform nicht der linker benötigt die ELF-Objekt überprüft wird, ldd ausfällt.
Readelf und objdump sind robuster in diesen Situationen.
InformationsquelleAutor jmajnert
Beachten Sie, dass in Fedora 21 zu bekommen, ldd zu identifizieren 32bit .also Dateien, ich musste Folgendes installieren:
Ich bin mir nicht sicher, welches dieser Feste, die "nicht eine dynamische ausführbare" Fehler, die ich sah in ldd.
yum install glibc.i686
war nötig, um diese Arbeit für die vxworks 6.9deflate
ausführbare Datei.InformationsquelleAutor eresonance