Ich habe eine statische Bibliothek, sagen wir mystaticlib.a
. Ich möchte seinen Inhalt sehen, z. B. die Anzahl der darin enthaltenen Objektdateien.
Wie kann ich das auf gcc machen?
Prasun Saurav
Ich habe eine statische Bibliothek, sagen wir mystaticlib.a
. Ich möchte seinen Inhalt sehen, z. B. die Anzahl der darin enthaltenen Objektdateien.
Wie kann ich das auf gcc machen?
Prasun Saurav
Verwenden Sie auf gcc ar -t
.
-t
Möglichkeit der gnu-Archivierer (ar) schreibt ein Inhaltsverzeichnis des Archivs auf die Standardausgabe. Nur die durch die Dateioperanden spezifizierten Dateien sollen in die schriftliche Liste aufgenommen werden. Wenn keine Dateioperanden angegeben sind, werden alle Dateien im Archiv in die Reihenfolge des Archivs aufgenommen.
Sie können den Inhalt (die darin enthaltenen .o-Dateien) und die definierten Symbole anzeigen, indem Sie verwenden nm
. Wenn dies C++-Code enthält, sollten Sie die verwenden -C
Option zum Entwirren der Symbolnamen:
nm -C libschnoeck.a | less
Verwenden Sie auf einem Mac einfach
nm libschnoeck.a | less
Es gibt kein -C
Option mit der Mac-Version von nm.
GreenBærg
Gerade darüber gestolpert:
Sie können ein Archiv (.a) mit 7zip öffnen. Funktioniert auch für die Objektdateien im Archiv. Auflistung aller möglichen Inhalte wie .text, .bss, .data,
usw. mit ihren offset, length, type,
… Außerdem ist es möglich, alles zu entpacken, indem man einen Hex-Editor oder Notepad++ verwendet, um den Inhalt anzuzeigen. Ich habe dies mit einem erstellten Archiv getestet GNUToolsARMEmbedded\2018-q4-major\bin\arm-none-eabi-
Werkzeugkette u 7Zip 16.04 (64-bit)
Ich habe gerade entdeckt, dass Sie verwenden können readelf -a
um den Inhalt aller Objektdateien in einer statischen Bibliothek anzuzeigen.
Rufen Sie den readelf-Befehl wie folgt auf: $ readelf -a mystaticlib.a
.
Gibt es eine Möglichkeit, dies in Python zu tun?
– RejeeshChandran
26. April 2018 um 11:34 Uhr