I have a static library, say mystaticlib.a
. I want to see its contents, such as the number of object files inside it.
How can I do this on gcc?
I have a static library, say mystaticlib.a
. I want to see its contents, such as the number of object files inside it.
How can I do this on gcc?
On gcc, use ar -t
.
-t
option of the gnu archiver (ar) writes a table of contents of archive to the standard output. Only the files specified by the file operands shall be included in the written list. If no file operands are specified, all files in archive shall be included in the order of the archive.
ar -x libdlib.a
indeed extracted out every *.o
without mercy. Excellence –
Terribly You can see the contents (the .o files that went into it) and the defined symbols by using nm
. If this contains C++ code you should use the -C
option to demangle the symbol names:
nm -C libschnoeck.a | less
On a Mac, simply use
nm libschnoeck.a | less
There is no -C
option with the Mac version of nm.
It just stumbled over this:
You can open an archive (.a) with 7zip.
Also works for the object files in the archive.
Listing all sorts of contents like .text, .bss, .data,
etc. with their offset, length, type,
...
Furthermore its possible to unpack all, using a hex editor or notepad++ to view the contents.
I tested this with an archive created with GNUToolsARMEmbedded\2018-q4-major\bin\arm-none-eabi-
Toolchain
and 7Zip 16.04 (64-bit)
I just discovered that you can use readelf -a
to display the contents of all the object files in a static library.
Invoke the readelf command like this: $ readelf -a mystaticlib.a
.
© 2022 - 2024 — McMap. All rights reserved.