How to list shared libraries used by a Linux binary using ldd command
The `ldd` (List Dynamic Dependencies) command on Linux is a crucial tool used for examining the shared libraries required by an executable or shared object file. By running `ldd` followed by the name of the executable or library, users can see which dynamic libraries are needed and where the system expects to find them. This command helps in troubleshooting issues related to missing or incompatible libraries, ensuring that all dependencies are correctly resolved. It displays the full paths to the libraries or indicates if any are missing, making it an essential utility for system administrators and developers managing software dependencies on Linux systems.
All the examples mentioned here have been tested on Ubuntu Linux, but the command works exactly the same way on other Distributions.
Linux ldd command
As already mentioned in the beginning, the ldd command prints shared object dependencies. Following is the command's syntax:
ldd [option]... file...
And here's how the tool's man page explains it:
ldd prints the shared objects (shared libraries) required by each program or shared object
specified on the command line.
The following Q&A-styled examples should give you a better idea on how ldd works.
Q1. How to use the ldd command?
Basic usage of ldd is fairly simple - just run the 'ldd' command along with an executable or shared object file name as input.
ldd [object-name]
For example:
ldd test
So you can see all shared library dependencies have been produced in output.
Q2. How to make ldd produce detailed information in output?
If you want ldd to produce detailed information, including symbol versioning data, you can use the -v command line option. For example, the command
ldd -v test
produced the following in output when the -v command-line option was used:
Q3. How to make ldd produce unused direct dependencies?
For this info, use the -u command-line option. Here's an example:
ldd -u test
Q4. How make ldd perform relocations?
There are a couple of command line options you can use here: -d and -r. While the former tells ldd to perform data relocations, the latter makes ldd perform relocations for both data objects and functions. In both cases, the tool reports missing ELF objects (if any).
ldd -d
ldd -r
Q5. How get help on ldd?
The --help command line option makes ldd produce useful usage-related information for the tool.
ldd --help
Conclusion
Ldd doesn't fall into the category where tools like cd, rm, and mkdir fit in. That's because it's built for a specific purpose and does what it promises. The utility offers limited command line options; we've covered most of them here. To know more, head to ldd's man page.