有没有办法知道在目标文件中导出哪些符号?

时间:2010-02-05 21:52:54

标签: c export static-libraries symbols object-files

您好我在Linux环境中工作,我必须链接到已经编译的目标文件,它提供了一些服务(services.o),我知道其中一些,但我想知道哪些都是它的导出符号。

有没有办法实现这个没有来源?如果是这样,怎么样?

非常感谢你。

3 个答案:

答案 0 :(得分:5)

尝试nm - 此工具就是出于此目的。

答案 1 :(得分:1)

另一个选项是objdump,它还可以向您展示一堆其他内容

答案 2 :(得分:1)

或者您可以使用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