回答:
必要なものnm
とその-D
オプション:
$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
U atanf
U calloc
.
.
.
エクスポートされたsumbolsはで示されますT
。他の共有オブジェクトからロードする必要のある必須シンボルには、がありますU
。シンボルテーブルには関数だけではなく、エクスポートされた変数も含まれていることに注意してください。
nm
、-D
フラグなしで使用してください。
objdump -T *.so
仕事もするかもしれない
MACでは、nm *.o | c++filt
には-C
オプションがないため、を使用する必要がありますnm
。
すでに言及されている他のツールの中で、使用することもできますreadelf
(手動)に似てobjdump
いますが、さらに詳しく説明しています。違いの説明はこちらをご覧ください。
$ 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 pthread_mutex_unlock@GLIBC_2.0 (4)
2: 00000000 0 FUNC GLOBAL DEFAULT UND pthread_mutex_destroy@GLIBC_2.0 (4)
3: 00000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable
4: 00000000 0 FUNC GLOBAL DEFAULT UND memmove@GLIBC_2.0 (5)
5: 00000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.0 (5)
6: 00000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.0 (5)