Linux ldd Command Explained with Examples
If your work involves deep knowledge of executables and shared libraries in Linux, there are several command line tools that you should be aware of. One of those is ldd, which you can use to access shared object dependencies. In this tutorial, we will discuss the basics of this utility using some easy to understand examples.
Please note that all examples mentioned here have been tested on Ubuntu 16.04 LTS.
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 ldd?
Basic usage of ldd is fairly simple - just run the 'ldd' command along with an executable or shared object file name as input.
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).
Q5. How get help on ldd?
The --help command line option makes ldd produce useful usage-related information for the tool.
Agreed, 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 it does what it promises. The utility offers limited command line options, and we've covered most of them here. To know more, head to ldd's man page.