Quelle est la ligne de commande pour voir le contenu d'un module d'objet partagé (lib * .so)?
Comme la façon dont nous utilisons:
ar -t lib*.a
pour les archives (lib * .a) et affiche tous les fichiers objets de la bibliothèque.
EDIT1
Exemple
ar -t lib*.a
me donne un affichage:
asset.o
sldep.o
utilisation nm -D --defined-only libname.so
pour obtenir les noms de symboles de votre bibliothèque dynamique.
Le --defined-only
switch vous montre uniquement le symbole défini dans ces fichiers, et non les références aux fonctions externes.
Une alternative consiste à utiliser objdump et à capturer uniquement les symboles dans la section de texte:
objdump -T /usr/lib/libjpeg.so | grep text
...
0001b5c0 g DF .text 00000016 Base jdiv_round_up
00003730 g DF .text 00000417 Base jpeg_set_colorspace
0000cda0 g DF .text 000002de Base jpeg_consume_input
00002b30 g DF .text 00000023 Base jpeg_abort_compress
00003b50 g DF .text 000000b6 Base jpeg_default_colorspace
00002810 g DF .text 00000067 Base jpeg_suppress_tables
00004110 g DF .text 00000130 Base jpeg_add_quant_table
000100c0 g DF .text 0000011f Base jpeg_save_markers
...
Je pense nm -D
est ce que vous recherchez.
$ nm -D /usr/lib/libpng.so
...
00000000000058f0 T png_reset_zstream
000000000000d420 T png_save_int_32
000000000000d450 T png_save_uint_16
000000000000d3f0 T png_save_uint_32
0000000000007810 T png_set_IHDR
0000000000007500 T png_set_PLTE
000000000000ce20 T png_set_add_alpha
0000000000006670 T png_set_asm_flags
0000000000006970 T png_set_bKGD
000000000001a740 T png_set_background
...
La commande nm -D
Répertorie les symboles dynamiques de votre bibliothèque partagée, ce qui semble être exactement ce que vous voulez.