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 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. ?
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