Is /usr/local/lib searched for shared libraries?

Make sure your LD_LIBRARY_PATH is set up to include all directories you want to search and then test it again.

You can test this quickly with:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib ffmpeg

which will set it only for that invocation.

Alternatively, you can edit /etc/ld.so.conf which contains the default directories searched. Some Linux distributions may not include /usr/local/lib in that file.

Note that you may also need to update the cache /etc/ld.so.cache by running ldconfig (as root, or with sudo).


From http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html:

The GNU standards recommend installing by default all libraries in /usr/local/lib when distributing source code (and all commands should go into /usr/local/bin).

...

The list of directories to be searched is stored in the file /etc/ld.so.conf. Many Red Hat-derived distributions don't normally include /usr/local/lib in the file /etc/ld.so.conf. I consider this a bug, and adding /usr/local/lib to /etc/ld.so.conf is a common ``fix'' required to run many programs on Red Hat-derived systems.

On Debian /etc/ld.so.conf contains include /etc/ld.so.conf.d/*.conf, and /etc/ld.so.conf.d/libc.conf contains

# libc default configuration
/usr/local/lib