2010-09-07 1 views
23

Какова командная строка для просмотра содержимого модуля общего объекта (lib * .so)?Командная строка для просмотра содержимого Модуль общих объектов (lib * .so)

Как то, как мы используем:

ar -t lib*.a 

архивов (Lib * .a) и отображает все объектные файлы в библиотеке.

EDIT1

Пример

ar -t lib*.a 

дает мне экран:

asset.o

sldep.o

ответ

42

использовать 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 
... 
+2

Это должен быть принятый ответ. –

+0

@Jack Kelly: утилита objdump кажется более всеобъемлющей, но какая разница в OP? –

+1

@Matt Joiner: Разница между этим ответом и моим является ссылкой на 'nm -D --defined-only'. 'nm -D' будет отображать неопределенные символы и т. д., что является просто шумом, если вы хотите увидеть, что определяет сам lib. –

13

Я думаю, nm -D - это то, что вы ищете.

$ 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 
... 
+0

Я создал динамическую библиотеку (Lib * .so файл) и добавили несколько функций в it.So I нужна командная строка, отображающая ее содержимое (т.е. функции) – Pavitar

4

В nm -D команда выводит динамические символы из общей библиотеки, которая, кажется, именно то, что вы хотите.

 Смежные вопросы

  • Нет связанных вопросов^_^