Finding Missing Shared Object Dependencies

Background

When using shared objects as plug-ins or modules the missing dependency error messages may be missing or deficient.

Explicitly Test Shared Object Loading

A quick way to test for missing shared object dependencies is to LD_PRELOAD the shared object explicitly while running a random shell command.

First, make sure your LDLIBRARYPATH is setup. Frequently this is done by sourcing a shell script:

. ./env.sh

Set the LD_PRELOAD env variable while running the "ls" command:

LD_PRELOAD=/home/ksedgwic/path/to/the/shared/object/of/interest.so ls

An error message will appear if there is a missing symbol. Sometimes the C++ demangler can be used to get nicer version of the name:

echo "_ZN17ACE_Event_Handler13add_referenceEv" | c++filt
ACE_Event_Handler::add_reference()