嗨,我在 Linux 环境中工作,我必须链接到已经编译的目标文件,该文件为我提供了一些服务(services.o),我知道其中一些,但我想知道哪些是所有导出的它的象征。
有没有办法在没有资源的情况下做到这一点?如果是这样,怎么做?
非常感谢你。
嗨,我在 Linux 环境中工作,我必须链接到已经编译的目标文件,该文件为我提供了一些服务(services.o),我知道其中一些,但我想知道哪些是所有导出的它的象征。
有没有办法在没有资源的情况下做到这一点?如果是这样,怎么做?
非常感谢你。
试试nm
——这个工具就是为了这个目的。
另一种选择是objdump
它也可以向你展示一堆其他的东西
或者您可以使用readelf -s
,这提供了更多详细信息。
Symbol table '.symtab' contains 19 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000000 0 FILE LOCAL DEFAULT ABS a.c
2: 0000000000000000 0 SECTION LOCAL DEFAULT 1
3: 0000000000000000 0 SECTION LOCAL DEFAULT 3
4: 0000000000000000 0 SECTION LOCAL DEFAULT 4
5: 0000000000000000 0 SECTION LOCAL DEFAULT 5
6: 0000000000000000 0 SECTION LOCAL DEFAULT 7
7: 0000000000000000 0 SECTION LOCAL DEFAULT 8
8: 0000000000000000 0 SECTION LOCAL DEFAULT 9
9: 0000000000000000 0 SECTION LOCAL DEFAULT 11
10: 0000000000000000 0 SECTION LOCAL DEFAULT 12
11: 0000000000000000 0 SECTION LOCAL DEFAULT 14
12: 0000000000000000 0 SECTION LOCAL DEFAULT 16
13: 0000000000000000 0 SECTION LOCAL DEFAULT 17
14: 0000000000000000 0 SECTION LOCAL DEFAULT 15
15: 0000000000000000 71 FUNC GLOBAL DEFAULT 1 fa_global
16: 0000000000000000 4 OBJECT GLOBAL DEFAULT 4 a
17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND fb_ex
18: 0000000000000050 17 FUNC GLOBAL DEFAULT 1 test