ldd
—
list dynamic object dependencies
ldd |
[-a ] [-f
format] program ... |
The ldd
utility displays all shared objects that are
needed to run the given program or to load the given shared object. Contrary
to nm(1), the
list includes “indirect” dependencies that are the result of
needed shared objects which themselves depend on yet other shared objects.
Zero, one or two -f
options may be given.
The argument is a format string passed to
rtld(1)
and allows customization of ldd
's output. If one is
given, it sets LD_TRACE_LOADED_OBJECTS_FMT1
. If two
are given, they set LD_TRACE_LOADED_OBJECTS_FMT1
and
LD_TRACE_LOADED_OBJECTS_FMT2
, respectively. See
rtld(1)
for details, including a list of recognized conversion characters.
The -a
option displays the list of all
objects that are needed by each loaded object.
ldd
lists the dependencies of an executable by setting
rtld(1)
environment variables and running the executable in a child process. If the
executable is corrupt or invalid, ldd
may therefore
fail without providing any diagnostic error messages.
The following is an example of a shell pipeline which uses the
-f
option. It will print a report of all ELF binaries
in the current directory, which link against libc.so.6:
find . -type f | xargs -n1 file -F '
' | grep 'ELF.*dynamically' | cut -f1 -d' ' | xargs ldd -f '%A %o\n' | grep
libc.so.6
A ldd
utility first appeared in SunOS 4.0, it appeared
in its current form in FreeBSD 1.1.