Jak wyświetlić listę funkcji eksportowanych przez Bibliotekę współdzieloną Linuksa?

Chcę zobaczyć wyeksportowane funkcje współdzielonej biblioteki na Linuksie.

Jakie polecenie pozwala mi to zrobić?

(W Windows używam programu zależy)

Author: ljbade, 2010-12-23

3 answers

Potrzebujesz nm i jej -D opcji:

$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
         U atanf
         U calloc
.
.
.

Eksportowane sumbole są oznaczane przez T. Wymagane symbole, które muszą być załadowane z innych współdzielonych obiektów mają U. Zauważ, że tabela symboli zawiera nie tylko funkcje, ale również eksportowane zmienne.

Zobacz nm strona podręcznika aby uzyskać więcej informacji.

 238
Author: thkala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-22 23:50:06

objdump -T *.so może również wykonać zadanie

 32
Author: user2391685,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-10 20:42:31

Na komputerze MAC musisz użyć nm *.o | c++filt, ponieważ nie ma opcji -C w nm.

 2
Author: Vincent Fenet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-02 09:04:22