【问题标题】:Is there any way to know which symbols are exported in a object file?有没有办法知道在目标文件中导出了哪些符号?
【发布时间】:2011-01-13 17:17:50
【问题描述】:

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

在没有资源的情况下有什么方法可以做到这一点?如果有,怎么做?

非常感谢。

【问题讨论】:

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


    【解决方案1】:

    试试nm——这个工具就是为了这个目的。

    【讨论】:

    • nm 仍然会告诉您所有导出的符号,即使在剥离的对象中也是如此。剥离的可执行文件会丢失所有导出,但未链接的对象仍然必须命名导出,否则您将无法链接它。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-10
        • 2011-12-19
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多