Contents of a static library

C++CGccStatic LibrariesObject Files

C++ Problem Overview


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?

C++ Solutions


Solution 1 - C++

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.

More info here.

Solution 2 - C++

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

Solution 3 - C++

On a Mac, simply use

nm libschnoeck.a | less

There is no -C option with the Mac version of nm.

Solution 4 - C++

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)

Solution 5 - C++

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPrasoon SauravView Question on Stackoverflow
Solution 1 - C++Prasoon SauravView Answer on Stackoverflow
Solution 2 - C++Jens GustedtView Answer on Stackoverflow
Solution 3 - C++kakyoView Answer on Stackoverflow
Solution 4 - C++GreenBærgView Answer on Stackoverflow
Solution 5 - C++JulianView Answer on Stackoverflow