Ich möchte die exportierten Funktionen einer gemeinsam genutzten Bibliothek unter Linux anzeigen.
Mit welchem Befehl kann ich das tun?
(Unter Windows benutze ich das Programm abhängig)
linux
export
shared-libraries
ljbade
quelle
quelle
Antworten:
Was Sie brauchen, ist
nm
und seine-D
Option:Exportierte Sumbole sind mit a gekennzeichnet
T
. Erforderliche Symbole, die von anderen freigegebenen Objekten geladen werden müssen, haben aU
. Beachten Sie, dass die Symboltabelle nicht nur Funktionen enthält, sondern auch exportierte Variablen.Weitere Informationen finden Sie auf der
nm
Handbuchseite .quelle
nm
ohne-D
Flag verwenden.objdump -T *.so
kann auch den Job machenquelle
Auf einem MAC müssen Sie verwenden
nm *.o | c++filt
, da es in keine-C
Option gibtnm
.quelle
Neben anderen bereits erwähnten Werkzeugen können Sie auch
readelf
( manuell ) verwenden. Es ist ähnlich,objdump
geht aber detaillierter. Siehe dies für die Erklärung der Unterschiede.quelle