Symbol of shared library
Symbol exported by a shared library
1) stackoverflow How do I view the list of functions a Linux shared library is exporting?
What you need is nm
and its -D
option:
$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
U atanf
U calloc
.
.
.
Exported sumbols are indicated by a T
. Required symbols that must be loaded from other shared objects have a U
. Note that the symbol table does not include just functions, but exported variables as well.
See the nm
manual page for more information.
On a MAC, you need to use nm *.o | c++filt
, as there is no -C
option in nm
.
2) stackoverflow How do i find out what all symbols are exported from a shared object?
Do you have a "shared object" (usually a shared library on AIX), a UNIX shared library, or a Windows DLL? These are all different things, and your question conflates them all :-(
- For an AIX shared object, use
dump -Tv /path/to/foo.o
. - For an ELF shared library, use
readelf -Ws /path/to/libfoo.so
, or (if you have GNU nm)nm -D /path/to/libfoo.so
. - For a non-ELF UNIX shared library, please state which UNIX you are interested in.
- For a Windows DLL, use
dumpbin /EXPORTS foo.dll
.