web-dev-qa-db-fra.com

Comment visualiser la liste des fonctions qu'une bibliothèque partagée Linux exporte?

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)

167
ljbade

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 nmpage de manuel pour plus d'informations.

275
thkala

objdump -T *.so peut aussi faire le travail

34
user2391685

Sur un MAC, vous devez utiliser nm *.o | c++filt, car il n'y a pas d'option -C dans nm.

5
Vincent Fenet