¿Cómo puedo ver la lista de funciones que una biblioteca compartida de Linux está exportando?


Quiero ver las funciones exportadas de una biblioteca compartida en Linux.

¿Qué comando me permite hacer esto?

(En Windows utilizo el programa depende)

Author: ljbade, 2010-12-23

3 answers

Lo que necesitas es nm y su -D opción:

$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
         U atanf
         U calloc
.
.
.

Los summbols exportados se indican mediante un T. Los símbolos requeridos que deben cargarse desde otros objetos compartidos tienen un U. Tenga en cuenta que la tabla de símbolos no incluye solo funciones, sino también variables exportadas.

Ver el nm página del manual para más información.

 238
Author: thkala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-22 23:50:06

objdump -T *.so también puede hacer el trabajo

 32
Author: user2391685,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-10 20:42:31

En un MAC, debe usar nm *.o | c++filt, ya que no hay una opción -C en nm.

 2
Author: Vincent Fenet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-02 09:04:22