Phonon Plugin: Cound not load phonon backend plugin (undefined symbol: ffi_type_uint32)
-
Hey,
I ve compield Qt for embedded with -glib -phonon -phonon-backend. My intention was to test the functionality with a small video application. But it dosn't work. With QT_DEBUG_PLUGINS it shows that there are maybe some problems with libffi - undefined symbol: Cannot load library ffi_type_uint32
@QLibraryPrivate::loadPlugin failed on [...]/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /mnt/usb/D21/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: ([...]/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded@For the phonon-plugin I crosscompiled:
- zlib.1.2.6
- libxml2-2.9.1
- liboil-0.3.17
- libffi-3.3.11
- glib-2.37.5
- check-0.9.10
- gstreamer-0.10.36
- gst-plugin-base-0.10.36
I also changed ther libffi version but with no better result.
The links of the libphonon_gstreamer.so (ldd) seems to be fine.
It would be gread if someone has an idee.
Thank you -
Hi,
Did you check that your target has the same library version as the one you cross-compiled ?
-
You can try replacing the one on the target with the one you used to cross-compile Qt
-
Sorry for answering late, I had an exam yesterday....
But sadly that didn't solved it. After following your advice ( same error), I also compiled Qt and my project agiain, copied librarys and Qt on my target, but that doesn't solved my problem either.
Thanks again
-
For the crosscompilation of gstreamer/phonon I compield the libs I mention in the first post (zlib, gstreamer etc) in the folder /opt/phonon/
I also copied this folder to my target. But if i delete that folder the same error appears.Do I need that folder on my target? (I think so)
If so the error could be a wrong linking between the plugin and the gstream/phonon libs.
Any idea how to fix that or how to analyse the linking?Thanks and regards
TRudolph -
Run ldd on your target on all your Qt libs/applications to see if there's something unusual
-
A plugin is a library not an executable
What does ldd return on your target ?
-
ok thank you.
To get an better overview I changed some directory, the error says now: @QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so:@
ldd example program
@ libphonon.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libphonon.so.4 (0x40029000)
libQtGui.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtGui.so.4 (0x40078000)
libQtNetwork.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtNetwork.so.4 (0x409c2000)
libQtCore.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtCore.so.4 (0x40ab8000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40e0d000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0x40e2e000)
libm.so.6 => /lib/libm.so.6 (0x40f00000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40fa3000)
libc.so.6 => /lib/libc.so.6 (0x40fcc000)
libdl.so.2 => /lib/libdl.so.2 (0x41109000)
librt.so.1 => /lib/librt.so.1 (0x41116000)
/lib/ld-linux.so.3 (0x40000000)@ldd libphonon.so.4
@ libQtGui.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtGui.so.4 (0x40050000)
libQtNetwork.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtNetwork.so.4 (0x4099a000)
libQtCore.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtCore.so.4 (0x40a90000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40de6000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0x40e07000)
libm.so.6 => /lib/libm.so.6 (0x40eda000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40f7d000)
libc.so.6 => /lib/libc.so.6 (0x40fa6000)
libdl.so.2 => /lib/libdl.so.2 (0x410e3000)
librt.so.1 => /lib/librt.so.1 (0x410f0000)
/lib/ld-linux.so.3 (0x2a000000)@The other Qt libs are similar
Plugin:
ldd libphonon_gstreamer.so
@ libphonon.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libphonon.so.4 (0x4036c000)
libQtGui.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtGui.so.4 (0x403bb000)
libQtNetwork.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtNetwork.so.4 (0x40d05000)
libQtCore.so.4 => /usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib/libQtCore.so.4 (0x40dfb000)
libpthread.so.0 => /lib/libpthread.so.0 (0x41151000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0x41173000)
libm.so.6 => /lib/libm.so.6 (0x41245000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x412e8000)
libc.so.6 => /lib/libc.so.6 (0x41311000)
libdl.so.2 => /lib/libdl.so.2 (0x4144e000)
librt.so.1 => /lib/librt.so.1 (0x4145c000)
/lib/ld-linux.so.3 (0x2a000000)@Sorry for the long answer,
Thanks and Regards
TRudolph -
No problem, that's what I asked you :)
Looks like all libraries can be found, can you run your application with the QT_DEBUG_PLUGINS environment variable set to 1 ?
-
The error I posted is already with the enviroment variable set to 1. The hole errors are below . But they are all the same.
phon is the name of my program.@# export QT_DEBUG_PLUGINS=1
QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: (/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: (/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: (/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to Phonon::VideoWidget ( VideoWidget ).
QLibraryPrivate::loadPlugin failed on "/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so" : "Cannot load library /usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: (/usr/local/Trolltech/QtEmbedded-4.8.4-arm/plugins/phonon_backend/libphonon_gstreamer.so: undefined symbol: ffi_type_uint32)"
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
@Thanks !!
TRudolph
-
Strange, let's take it the other way around: use your target's original libffi to cross-compile Qt with
-
i tried a lot of diffrents libs... but nothing became any better :(
After that I changed the cross compiler, the porgram abort with Segmentation error , the fist time phonon is needed ... don't know if that is any better.
I think that the phonon plugin is loaded but can not be executed?( During the anyoing testing of different libs, I tried to run the movie example of the qt creator on my target ( no Phonon is needed). But sadly after the gif file is loaded there is a segmentation error, then the movie should start as well. Probably not related with the prolem above.....)
Thanks and Regards
TRudolph -
Segfault ? Did you run your program with the debugger to see where it's crashing ?