Как я могу заглянуть внутрь объекта Linux .so или .a и посмотреть, какие функции они содержат?

Возможно, компоновщик может это сделать, поэтому есть ли средство командной строки для enums функций в объектных файлах и указать мне имена функций и их подписи?

вы можете сделать nm Linux.so и он покажет функции и переменные внутри .so-файла.

Для общей библиотеки вы должны использовать:

 nm -D /path/to/libwhatever.so. 

Без -D , nm отлаживает символы отладки ; -D относится к динамическим символам, которые фактически используются для динамической компоновки. С сессии Ubuntu 12:

 $ nm /lib/i386-linux-gnu/libc.so.6 nm: /lib/i386-linux-gnu/libc.so.6: no symbols $ nm -D /lib/i386-linux-gnu/libc.so.6 | tail 0011fc20 T xdr_wrapstring 001202c0 T xdrmem_create 00115540 T xdrrec_create 001157f0 T xdrrec_endofrecord 00115740 T xdrrec_eof 00115690 T xdrrec_skiprecord 00120980 T xdrstdio_create 00120c70 T xencrypt 0011d330 T xprt_register 0011d450 T xprt_unregister 

В этой системе libc.so лишено символов отладки, поэтому nm ничего не показывает; но, конечно, есть символы для механизма динамического связывания, обнаруженного nm -D .

Для архива .o или .o объектного файла, просто nm . Символы – это символы; если эти файлы удалены, эти объекты не могут использоваться для связывания.