Ich habe versucht, objdump auf der lib auszuführen, um es ohne Erfolg herauszufinden. Gibt es eine Möglichkeit herauszufinden, was eine Bibliothek tut?
objdump -T libgcc_s.sogibt Ihnen die Linkerpunkte für freigegebene Objekte. Vorausgesetzt, Sie wissen, was __gttf2und dergleichen bedeuten, sollten Sie kein Problem haben. (Ich erwarte, dass libgcc_s.so in dieser Hinsicht atypisch kryptisch ist)
Es handelt sich um die Laufzeitbibliothek von GCC , die einige Low-Level-Funktionen enthält, an die GCC Aufrufe sendet (wie die long longAufteilung auf 32-Bit-CPUs).
+1 dumm alt ich, manchmal sieht man einfach nicht an der offensichtlichen Stelle
Celavek
2
Wissen Sie zufällig, ob das EABI eines bestimmten Prozessors (z. B. ARM EABI) in dieser Bibliothek implementiert ist?
Celavek
@celavek Ich bin mir nicht sicher, was du meinst. AFAIK, das ABI der aktuellen Plattform, würde wie in anderen GCC-Laufzeitbibliotheken implementiert: gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
Alex B
Was ist, wenn Sie clang anstelle von gcc verwenden, würde es trotzdem eingebunden sein?
objdump -T libgcc_s.so
gibt Ihnen die Linkerpunkte für freigegebene Objekte. Vorausgesetzt, Sie wissen, was__gttf2
und dergleichen bedeuten, sollten Sie kein Problem haben. (Ich erwarte, dass libgcc_s.so in dieser Hinsicht atypisch kryptisch ist)Antworten:
Es handelt sich um die Laufzeitbibliothek von GCC , die einige Low-Level-Funktionen enthält, an die GCC Aufrufe sendet (wie die
long long
Aufteilung auf 32-Bit-CPUs).Ein Teil dieser Bibliothek wird vom LSB benötigt .
quelle