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