Wie kann ich herausfinden, welche ELF-Abhängigkeit nicht erfüllt ist?

8

Ich habe ein Test-ELF-Programm mit dem LSB SDK erstellt ( beachte, dass meine Frage nicht spezifisch für LSB ist):

%Vor%

Aber ich kann es nicht starten ( ja, ich versichere Ihnen die Datei ist im Verzeichnis ... ):

%Vor%

Ich denke, dass es eine ELF-Abhängigkeit gibt, die nicht erfüllt wird, aber ich weiß nicht, wie ich sie finden soll. Gibt es ein Tool, das ldd für Bibliotheken ähnlich ist, mit dem man den fehlenden Link finden kann?

Ich glaube nicht, dass es mit dem 2.6.15 / 2.6.28-15 Unterschied zusammenhängt, weil der LSB Compiler funktioniert:

%Vor%

Nur für den Fall, hier ist der ELF dynamische Abschnitt von a.out:

%Vor%     
math 13.10.2009, 18:26
quelle

1 Antwort

11

Dies sieht so aus, als ob der ELF-Interpreter fehlt.

Stellen Sie sicher, dass /lib/ld-lsb.so.2 (oder ähnlich; variiert je nach LSB-Version und -Architektur) vorhanden ist. ldd und readelf -l können den ELF-Interpreter anzeigen, den Ihre ausführbare Datei anfordert.

( lsbcc (oder etwas in der LSB-Toolchain) überschreibt die Standard /lib/ld-linux.so.2 des Systems, wahrscheinlich indem -Wl,--dynamic-linker=/lib/ld-lsb.so.2 an den Compiler übergeben wird, aus Gründen, die ich für ziemlich albern halte (Glibc hat immer eine ziemlich gute Rückwärtskompatibilität geliefert) hier), aber da hast du es.)

    
ephemient 13.10.2009, 20:39
quelle

Tags und Links