Since ldd
lists only the dynamic libraries, is there a way to extract the information about the static libraries used to create the executable?
ldd <exe filename>
shows dynamically linked libraries
nm <exe filename>
shows the symbols in the file.
To see which symbols come from static libraries requires running nm
against those libraries to get a list of the symbols (functions, etc.) in them, then comparing them to what your list of symbols from nm <exe filename>
.
You compare lists with the comm
command. See man comm
for details.
This was taken from this forum here.
No, the names of the libraries are discarded during the linking process. However, if your executable contains debug information (i.e. it was compiled with the -g flag), you may be able to get information from that.