# LDD - print shared object dependencies - man - [phpMan]

> **TLDR:** Display shared library dependencies of a binary.
>
- Display shared library dependencies of a binary:
  `ldd {{path/to/binary}}`
- Display all information about dependencies:
  `ldd {{-v|--verbose}} {{path/to/binary}}`
- Display unused direct dependencies:
  `ldd {{-u|--unused}} {{path/to/binary}}`
- Report missing data objects and perform data relocations:
  `ldd {{-d|--data-relocs}} {{path/to/binary}}`
- Report missing data objects and functions, and perform relocations for both:
  `ldd {{-r|--function-relocs}} {{path/to/binary}}`

*Source: tldr-pages*

---

[_ldd_(1)](https://www.chedong.com/phpMan.php/man/ldd/1/markdown)                                 General Commands Manual                                [_ldd_(1)](https://www.chedong.com/phpMan.php/man/ldd/1/markdown)

## NAME
       ldd - print shared object dependencies

## SYNOPSIS
       **ldd **[_option_]... _file_...

## DESCRIPTION
       **ldd  **prints  the  shared objects (shared libraries) required by each program or shared object
       specified on the command line.  An example of its use and output is the following:

           $ **ldd /bin/ls**
               linux-vdso.so.1 (0x00007ffcc3563000)
               libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
               libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
               libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
               libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
               libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
               /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
               libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
               libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)

       In the usual  case,  **ldd  **invokes  the  standard  dynamic  linker  (see  [**ld.so**(8)](https://www.chedong.com/phpMan.php/man/ld.so/8/markdown))  with  the
       **LD_TRACE_LOADED_OBJECTS **environment variable set to 1.  This causes the dynamic linker to in‐
       spect  the  program's  dynamic  dependencies,  and  find (according to the rules described in
       [**ld.so**(8)](https://www.chedong.com/phpMan.php/man/ld.so/8/markdown)) and load the objects that satisfy those dependencies.   For  each  dependency,  **ldd**
       displays  the  location  of  the matching object and the (hexadecimal) address at which it is
       loaded.  (The _linux-vdso_ and _ld-linux_  shared  dependencies  are  special;  see  [**vdso**(7)](https://www.chedong.com/phpMan.php/man/vdso/7/markdown)  and
       [**ld.so**(8)](https://www.chedong.com/phpMan.php/man/ld.so/8/markdown).)

### Security
       Be  aware  that  in  some circumstances (e.g., where the program specifies an ELF interpreter
       other than _ld-linux.so_), some versions of **ldd **may attempt to obtain the  dependency  informa‐
       tion  by attempting to directly execute the program, which may lead to the execution of what‐
       ever code is defined in the program's ELF interpreter, and perhaps to execution of  the  pro‐
       gram  itself.   (Before glibc 2.27, the upstream **ldd **implementation did this for example, al‐
       though most distributions provided a modified version that did not.)

       Thus, you should _never_ employ **ldd **on an untrusted executable, since this may  result  in  the
       execution of arbitrary code.  A safer alternative when dealing with untrusted executables is:

           $ **objdump -p /path/to/program | grep NEEDED**

       Note,  however,  that  this alternative shows only the direct dependencies of the executable,
       while **ldd **shows the entire dependency tree of the executable.

## OPTIONS
### --version
              Print the version number of **ldd**.

### --verbose
### -v     

### --unused
### -u     

### --data-relocs
### -d     

### --function-relocs
### -r     
              jects or functions (ELF only).

       **--help **Usage information.

## BUGS
       **ldd **does not work on a.out shared libraries.

       **ldd  **does not work with some extremely old a.out programs which were built before **ldd **support
       was added to the compiler releases.  If you use **ldd **on one of  these  programs,  the  program
       will attempt to run with _argc_ = 0 and the results will be unpredictable.

## SEE ALSO
       [**pldd**(1)](https://www.chedong.com/phpMan.php/man/pldd/1/markdown), [**sprof**(1)](https://www.chedong.com/phpMan.php/man/sprof/1/markdown), [**ld.so**(8)](https://www.chedong.com/phpMan.php/man/ld.so/8/markdown), [**ldconfig**(8)](https://www.chedong.com/phpMan.php/man/ldconfig/8/markdown)

Linux man-pages 6.7                          2023-10-31                                       [_ldd_(1)](https://www.chedong.com/phpMan.php/man/ldd/1/markdown)
