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)
linux
export
shared-libraries
ljbade
la source
la source
Réponses:
Ce dont vous avez besoin est
nm
et son-D
option:Les sumbols exportés sont indiqués par un
T
. Les symboles requis qui doivent être chargés à partir d'autres objets partagés ont unU
. Notez que la table des symboles n'inclut pas uniquement des fonctions, mais également des variables exportées.Consultez la
nm
page de manuel pour plus d'informations.la source
nm
sans le-D
drapeau.objdump -T *.so
peut aussi faire le travailla source
Sur un MAC, vous devez utiliser
nm *.o | c++filt
, car il n'y a pas d'-C
option dansnm
.la source
Parmi les autres outils déjà mentionnés, vous pouvez également utiliser
readelf
( manuel ). Il est similaire àobjdump
mais va plus dans les détails. Voir ceci pour l'explication de la différence.la source