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...
:-s
Cheers,
Laz
On Saturday 29 April 2006 17:05, Stefan Lucke wrote:
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