Search code examples
c++linuxgccindexingarchive

How to see the "index" information of .a (archive) file?


I suppose gcc linker by default calls ranlib to inject index information to archive files(.a).

But

  1. how can I see this "index" by any linux command?
  2. Is it used/useful by linker when linking to generate executables?

Solution

  • As stated in the GNU ranlib man page:

    ranlib generates an index to the contents of an archive and stores it in the archive. The index lists each symbol defined by a member of an archive that is a relocatable object file.

    You may use nm -s or nm --print-armap to list this index.

    An archive with such an index speeds up linking to the library and allows routines in the library to call each other without regard to their placement in the archive.