Re: 'Path for the shared libraries which I do not have direct dependency' also in LD_LIBRARY_PATH

From: Chuck Dillon (cdillon_at_nimblegen.com)
Date: 03/24/04


Date: Wed, 24 Mar 2004 08:48:54 -0600

qazmlp wrote:
> I have a shared library libFirst.so
> I have a shared library libSecond.so which has dependency libFirst.so.
> Hence, while producing the libSecond.so, I have to add the path to
> libFirst.so
> in the LD_LIBRARY_PATH
>
> I have a shared library libThird.so which has dependency only on
> libSecond.so.
> So, I mentioned the path to only libSecond.so in the LD_LIBRARY_PATH
> while producing
> libThird.so.
> But, the linker reports error pointing at the symbols in libFirst.so
> After adding the path to libFirst.so also in the LD_LIBRARY_PATH, the
> error disappears.
>
> I am wondering why such a requirement of adding the path of some other
> shared libraries also is required when my library libThird.so does not
> have a direct dependency on them.
>
> Kindly clarify!

The default linker behavior when linking a program or .so is to fully
resolve all symbols including the dependencies in .so's indirectly
referenced.

Don't rely on LD_LIBRARY_PATH to resolve link time references. Specify
the library locations on the compiler (or linker) command line (e.g.
-L<path to non-system-standard-libraries>).

-- ced

-- 
Chuck Dillon
Senior Software Engineer
NimbleGen Systems Inc.


Relevant Pages