[vdr] Linking plugins against shared libs

Laz laz at club-burniston.co.uk
Sat Apr 29 18:10:43 CEST 2006


On Saturday 29 April 2006 17:05, Stefan Lucke wrote:
> On Samstag 29 April 2006 17:46, Laz wrote:
> > This isn't exactly a vdr question but hopefully someone can give me an
> > answer here!
> >
> > I'm in the process of trying to add hardware MPEG decoding to the
> > softdevice plugin. I have just built a shared library which does the
> > decoding. I can link a test application against this and call functions
> > from the library with no problems. However, when I link the softdevice
> > plugin against my library, it links with no errors but I get an
> > "undefined symbol" error when I try to run vdr and it trys to load the
> > plugin!
> >
> > This is the first time I've had the need to build a shared library in
> > this way so I'm a bit confused as to what's wrong here! My library is
> > being linked with "-Wl,-soname,libcle266decode.so.0.1 -o
> > libcle266decode.so.0.1", and I've added the relevant -I, -l, and -L to
> > the plugin makefile so that it finds it.
> >
> > "ldd libvdr-softdevice.so.1.3.47" shows that it is finding my library and
> > "strings libcle266decode.so.0.1" shows the symbol for the function which
> > is being called.
> >
> > This must be something really basic that I'm missing here...
>
> Did you build softdevice with sub-plugins enabled ?
> What is your exact commandline when calling vdr etc. ?

DOH! Problem solved: I needed to declare functions as extern "C" in my 
library.

I've been programming C for years but vdr has been the first C++ project I've 
worked on. You live and learn...

It seems to be up and running now: need to go and check to se ef there is 
anything on the TV!

:)

Cheers,

Laz



More information about the vdr mailing list