Auf einem MAC müssen Sie nm *.o | c++filt verwenden , da es kein -C gibt Option in nm .
Was Sie brauchen, ist nm und seine -D Möglichkeit:
$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
U atanf
U calloc
.
.
.
Exportierte Sumbole werden durch einen T gekennzeichnet . Erforderliche Symbole, die von anderen gemeinsam genutzten Objekten geladen werden müssen, haben einen U . Beachten Sie, dass die Symboltabelle nicht nur Funktionen enthält, sondern auch exportierte Variablen.
Siehe nm Handbuchseite für weitere Informationen.
Neben anderen bereits erwähnten Tools können Sie auch readelf verwenden (Handbuch). Es ähnelt objdump geht aber mehr ins detail. Siehe dies für die Erklärung der Unterschiede.
$ readelf -sW /lib/liblzma.so.5 |head -n10
Symbol table '.dynsym' contains 128 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (4)
2: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (4)
3: 00000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable
4: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (5)
5: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (5)
6: 00000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.0 (5)
objdump -T *.so kann auch den Job machen