How can I get a list of functions my applications uses which are actually calls to shared-library functions?
The command
will return a list of functions used by the binary which are actually calls to shared-library functions, together with the names of the libraries that contain them (see next question).
How can get a list of the function names of a dynamic shared library?
First you have to find the library. This is done using locate; for example
returns all paths (there might be more than one) to the library libNAME.dylib
Second, after cding to the directory holding the library, type the command
otool -vT libNAME.dylib | more
which returns the table of contents of the library in human-readable form.
How can I get a list of shared libraries used by the applications located in a certain folder hierarchy?
Summary of the above and a nice demonstration of some important UNIX concepts like command pipelines and regular expressions: The command
for item in `find . -perm -0100 -type f` ; do file $item | grep 'Mach-O' ; done | awk '{print $1}' | sed 's/\:$//' | xargs otool -vH | grep lib | sed 's/.*\(lib[^)]*\))/\1/g' | sort -u
(all on one line) will return a list of shared libraries used by all applications located in the current folder hierarchy.