Jak wydrukować listę symboli wyeksportowanych z biblioteki dynamicznej

Więc starałem się, aby dynamiczne biblioteki działały w moim projekcie XCode pod Mac OS X. do tej pory nie było radości.

Jestem w stanie załadować plik dylib, ale kiedy wywołuję dlsym, aby uzyskać wskaźnik funkcji, zwraca 0 i dlerror mówi, że symbol nie został znaleziony.

Więc zastanawiam się, czy nie ma prostego sposobu, aby wymienić symbole, które są eksportowane z pliku dylib. Każdy pomysł byłby świetny.

 103
Author: bdesham, 2010-12-22

4 answers

Man 1 nm

Https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/nm.1.html

Na przykład:

nm -gU /usr/local/Cellar/cairo/1.12.16/lib/cairo/libcairo-trace.0.dylib
 121
Author: MK.,
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
2017-07-01 02:56:06

Użyj otool :

otool -TV your.dylib

Lub

nm -g your.dylib
 51
Author: linuxbuild,
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
2015-09-13 20:32:59

Użyj nm -a your.dylib

Wyświetli wszystkie symbole łącznie z globalami

 12
Author: Omkar Ramtekkar,
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
2013-08-29 07:00:45

Użyj Mach-OView do wyświetlenia wszystkich symboli w dylib

Https://sourceforge.net/projects/machoview/

 0
Author: Sahil Doshi,
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-03 11:14:48