GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo veo la lista de funciones que exporta una biblioteca compartida de Linux?

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


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 símbolos exportados se indican con un T . Los símbolos obligatorios 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 obtener más información.


Entre otras herramientas ya mencionadas puedes usar también readelf (manual). Es similar a objdump pero va más en detalle. Vea esto para la explicación de la diferencia.

$ readelf -sW /lib/liblzma.so.5 |head -n10

Symbol table '.dynsym' contains 128 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (4)
     2: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (4)
     3: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTable
     4: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (5)
     5: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (5)
     6: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (5)

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


Linux
  1. Cómo cambiar el shell predeterminado en Linux

  2. Cómo cambiar el shell predeterminado en Linux

  3. Cómo inicializar una biblioteca compartida en Linux

  4. Cómo configurar googleTest como una biblioteca compartida en Linux

  5. Dos versiones de python en linux. cómo hacer que 2.7 sea el predeterminado

Cómo enumerar los miembros de un grupo en Linux

Cómo ver el contenido de un archivo o archivo comprimido en Linux

Cómo enumerar las bibliotecas compartidas utilizadas por los ejecutables en Linux

Cómo cambiar el shell predeterminado en el sistema Linux

Cómo ver o enumerar trabajos cron en Linux

Cómo encontrar la lista de repositorios instalados en Linux