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