Zawartość biblioteki statycznej
Mam statyczną bibliotekę, powiedzmy mystaticlib.a
. Chcę zobaczyć jego zawartość, na przykład liczbę plików obiektowych wewnątrz niego.
Jak mogę to zrobić na gcc?
4 answers
Na gcc użyj ar -t
.
-t
Opcja gnu archiver (ar) zapisuje spis zawartości archiwum na standardowe wyjście. W spisanej liście znajdują się tylko pliki określone przez operandy pliku. Jeśli nie podano operandów plików, wszystkie pliki w archiwum powinny być włączone w kolejności archiwum.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-23 14:57:03
Możesz zobaczyć zawartość (the .o pliki, które do niego weszły) i zdefiniowane symbole za pomocą nm
. Jeśli zawiera on kod C++, powinieneś użyć opcji -C
do demangle nazw symboli:
nm -C libschnoeck.a | less
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-21 09:08:11
Na komputerze Mac po prostu użyj
nm libschnoeck.a | less
Nie ma opcji -C
w wersji Mac nm.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-23 22:34:01
Po prostu potknęło się o to:
Możesz otworzyć archiwum (.a) z 7zip.
Działa również dla plików obiektowych w archiwum.
Lista wszelkiego rodzaju treści jak .text, .bss, .data,
itp. z ich offset, length, type,
...
Ponadto możliwe jest rozpakowanie wszystkich, za pomocą edytora szesnastkowego lub notatnika++, aby wyświetlić zawartość.
Testowałem to z archiwum utworzonym za pomocą GNUToolsARMEmbedded\2018-q4-major\bin\arm-none-eabi-
Toolchain
i 7Zip 16.04 (64-bit)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-21 08:50:22