Je souhaite afficher les fonctions exportées d'une bibliothèque partagée sous Linux.
Quelle commande me permet de faire cela?
(Sous Windows j'utilise le programme dépend)
Ce dont vous avez besoin, c’est nm
et son option -D
:
$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
U atanf
U calloc
.
.
.
Les valeurs exportées sont indiquées par un T
. Les symboles requis devant être chargés à partir d'autres objets partagés ont un U
. Notez que la table des symboles n'inclut pas uniquement les fonctions, mais également les variables exportées.
Voir le nm
page de manuel pour plus d'informations.
objdump -T *.so
peut aussi faire le travail
Sur un MAC, vous devez utiliser nm *.o | c++filt
, car il n'y a pas d'option -C
dans nm
.