Strange dependency on an unlinked shared library
Ian Lance Taylor
iant@google.com
Tue Mar 22 14:53:00 GMT 2011
Arun Kumar <arun.einstein@gmail.com> writes:
> I'm linking an application against some shared libraries, which are
> compiled locally:
>
> gcc -Wl,--rpath=$ORIGIN/lib -L../../ffmpeg/lib -lavformat
> -lavutil my_prgram.o -o my_program
>
> When I do an
> readelf -a my_program
>
> I see that the libraries libavformat.so.52, libavutil.so.49 etc..
> (basically the libraries in the path `../../ffmpeg/lib') are `NEEDED'
> and not anything else, but strangely enough
> when I try to execute -- it has a dependency on another
> libavformat.so.51 (probably an older version which might have been
> installed on the system in the past, but not on `NEEDED'
> list).
>
> Also on executing:
>
> ldd
>
> It shows the dependency on the older version of the library is `not
> found'. I'm baffled, is there a possibility of executable asking for a
> library it was not linked against?
Sure, if one of the shared libraries on the NEEDED list itself has a
NEEDED reference.
Ian
More information about the Binutils
mailing list