C 有没有办法知道在对象文件中导出了哪些符号?
嗨,我在Linux环境中工作,我必须链接到一个已经编译的对象文件,该文件为我提供了一些服务(services.o),我知道其中一些,但我想知道哪些是它的导出符号 没有资源,有没有办法做到这一点?如果是,怎么做C 有没有办法知道在对象文件中导出了哪些符号?,c,export,static-libraries,symbols,object-files,C,Export,Static Libraries,Symbols,Object Files,嗨,我在Linux环境中工作,我必须链接到一个已经编译的对象文件,该文件为我提供了一些服务(services.o),我知道其中一些,但我想知道哪些是它的导出符号 没有资源,有没有办法做到这一点?如果是,怎么做 非常感谢。尝试一下nm——这个工具就是为了这个目的而存在的。另一个选项是objdump,它也可以向您展示一些其他的东西或者您可以使用readelf-s,这提供了更多的详细信息 Symbol table '.symtab' contains 19 entries: Num: Va
非常感谢。尝试一下
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
nm仍然会告诉您所有导出的符号,即使在剥离对象中也是如此。剥离的可执行文件将丢失所有导出,但未链接的对象仍必须命名导出,否则您将无法链接它。