【问题标题】:Command Line to see the contents Shared Object Module(lib*.so)命令行查看内容 Shared Object Module(lib*.so)
【发布时间】:2011-04-09 00:53:21
【问题描述】:

查看共享对象模块 (lib*.so) 内容的命令行是什么?

就像我们的使用方式:

ar -t lib*.a

用于档案(lib*.a),它显示库中的所有目标文件。

EDIT1

示例

ar -t lib*.a

给我一​​个展示:

asset.o

sldep.o

【问题讨论】:

    标签: c linux shared-objects dll


    【解决方案1】:

    使用 nm -D --defined-only libname.so 从动态库中获取符号名称。
    --defined-only 开关只显示在这些文件中定义的符号,而不是对外部函数的引用。

    另一种方法是使用 objdump,只捕获文本部分中的符号:

    objdump -T /usr/lib/libjpeg.so | grep text
    ...
    0001b5c0 g    DF .text  00000016  Base        jdiv_round_up
    00003730 g    DF .text  00000417  Base        jpeg_set_colorspace
    0000cda0 g    DF .text  000002de  Base        jpeg_consume_input
    00002b30 g    DF .text  00000023  Base        jpeg_abort_compress
    00003b50 g    DF .text  000000b6  Base        jpeg_default_colorspace
    00002810 g    DF .text  00000067  Base        jpeg_suppress_tables
    00004110 g    DF .text  00000130  Base        jpeg_add_quant_table
    000100c0 g    DF .text  0000011f  Base        jpeg_save_markers
    ...
    

    【讨论】:

    • @Jack Kelly:objdump 工具似乎更全面,但与 OP 有什么区别?
    • @Matt Joiner:这个答案和我的不同之处在于对nm -D --defined-only的引用。 nm -D 将显示未定义的符号等,如果您想查看 lib 本身定义的内容,这只是噪音。
    • 怎么看每个函数的内容?
    【解决方案2】:

    我认为nm -D 是您正在寻找的。​​p>

    $ nm -D /usr/lib/libpng.so
    ...
    00000000000058f0 T png_reset_zstream
    000000000000d420 T png_save_int_32
    000000000000d450 T png_save_uint_16
    000000000000d3f0 T png_save_uint_32
    0000000000007810 T png_set_IHDR
    0000000000007500 T png_set_PLTE
    000000000000ce20 T png_set_add_alpha
    0000000000006670 T png_set_asm_flags
    0000000000006970 T png_set_bKGD
    000000000001a740 T png_set_background
    ...
    

    【讨论】:

    • 我创建了一个动态库(lib*.so 文件)并在其中添加了一些函数。所以我需要一个显示其内容的命令行。(即函数)
    • 每个函数的内容怎么看?
    【解决方案3】:

    nm -D 命令列出了您共享库的动态符号,这似乎正是您想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多