Enable Gstreamer in Qt5 configuration
-
You're configuration process fails while testing glib, do you have it for ARM ? Also can you post your complete configure command ?
-
Dear SGalt,
I have just installed glib2.0, libglib2.0, libglib2.0-dev, libqtglib2.0 before.
@
../gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-g++ --sysroot=[TARGET_ROOTFS] -o glib glib.o -L[TARGET_ROOTFS]/usr/lib -L[TARGET_ROOTFS]/usr/lib/arm-linux-gnueabi -L[TARGET_ROOTFS/lib/arm-linux-gnueabi -lpthread -ldl -lGLESv2 -lEGL -lIMGegl -lsrv_um -lgmodule-2.0 -lgobject-2.0 -lffi -ldbus-1 -lpcre --sysroot=[TARGET_ROOTFS] -pthread -lgthread-2.0 -lrt -lglib-2.0/arm-linux-gnueabi/bin/ld: note: 'clock_gettime@@GLIBC_2.4' is defined in DSO ../lib/arm-linux-gnueabi/librt.so.1 so try adding it to the linker command line
/lib/arm-linux-gnueabi/librt.so.1: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [glib] Error 1
Glib disabled.
@
librt.so.1 exist in /lib/arm-linux-gnueabi
I try to search solution in Google and many answer is add " -lrt" but you can see that it exist in my command.This is my complete configure command
@
./configure -confirm-license -opensource -v -arch arm -device linux-xxx-g++ -prefix /opt/share/qt5 -device-option CROSS_COMPILE=/home/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi- -sysroot /home/rootfs_br -debug -continue -opengl es2 -pkg-config -dbus -icu
@Note : linux-xxx-g++ exist in qt-everywhere.../qtbase/mkspecs/devices/
-
Since you are cross-compiling, you also need to either get the ARM version of these libraries or cross-compile them.
-
Where did you install them ?
-
Then how can the configure script find the libraries ?
One way to do that is to copy the libraries and headers from your target rootfs in your toolchain directories
-
Hello, I know this thread is quite old but I'm running into the same issues. I mounted the target's rootfs in a local folder and I set the sysroot parameter to that path.
In that folder there is the complete arm filesystem with these packages installed:
@
libgstreamer0.10-dev
libgstreamer-plugins-base0.10-dev
gstreamer-tools
gstreamer0.10-plugins-bad
gstreamer0.10-plugins-good
gstreamer0.10-plugins-ugly
libglib2.0-dev
libglib2.0-0
libqtglib-2.0-0
@Here the configure command:
@
./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/dev/rpi/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-relocations -reduce-exports -release -developer-build -make libs -prefix /usr/local/qt5pi -no-pch -nomake examples -nomake tests -silent
@Anyway both GLib and GStreamer supports are disabled. Here the related errors:
@
Glib auto-detection... ()
compiling glib.cpp
glib.cpp: In function ‘int main(int, char**)’:
glib.cpp:48:19: warning: variable ‘context’ set but not used [-Wunused-but-set-variable]
glib.cpp:55:38: warning: ‘pollfd’ is used uninitialized in this function [-Wuninitialized]
linking glib
/home/femtotech/dev/rpi/gcc-4.7-linaro-rpi-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.2/../../../../arm-linux-gnueabihf/bin/ld: /mnt/rasp-pi-rootfs/usr/lib/arm-linux-gnueabihf/libglib-2.0.a(gmain.o): undefined reference to symbol 'clock_gettime@@GLIBC_2.4'
/home/femtotech/dev/rpi/gcc-4.7-linaro-rpi-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.2/../../../../arm-linux-gnueabihf/bin/ld: note: 'clock_gettime@@GLIBC_2.4' is defined in DSO /mnt/rasp-pi-rootfs/lib/arm-linux-gnueabihf/librt.so.1 so try adding it to the linker command line
/mnt/rasp-pi-rootfs/lib/arm-linux-gnueabihf/librt.so.1: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make: *** [glib] Error 1
Glib disabled.
@But the /mnt/rasp-pi-rootfs/lib/arm-linux-gnueabihf/librt.so.1 is there, actually.
Any ideas?
-
[quote author="_dmp" date="1386143087"]I cross compile Qt 5.2 for imx6 from source and ./configure just dont try find gstreamer from rootfs. I look at ./configure inside and dont find anything about gstreamer. What can I do?[/quote]
Have you solved this problem?
I'm working on it too. -
I did not try to cross-compile neither Qt nor GStreamer. So this is just my guess.
On Linux Qt configure tries to find gstreamer using pkg-config utility.
pkg-config uses $PKG_CONFIG_PATH to look for all available packages.
The packages are the text files with simple structure and .pc extension.Try to find gstreamer*.pc files in your cross-compiled gstreamer and if you find the files then append a path to these files to PKG_CONFIG_PATH environment variable and then run configure from Qt.
-
Is there meanwhile a solution on how to configure Qt5.3 to use gstreamer? I have the same Problem on the Raspberry Pi.
I'm using this tutorial: http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi
I ignored the change of "QT_CFLAGS_GSTREAMER=" in the configure script, because it is not there. Additionally I set the following environment variables before running configure to get "pkg-config ............. yes":
@PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig:/usr/lib/arm-linux-gnueabihf/pkgconfig:/usr/share/pkgconfig"
PKG_CONFIG_SYSROOT_DIR="/."
PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/lib/arm-linux-gnueabihf/pkgconfig:/usr/share/pkgconfig"@I read a little bit in the configure script code and at the part where the "Configure summary" is generated I found nothing where it is possible to add additional Packages (for example found by pkg-config) so is it even possible that the configure script finds gstreamer or is it even searching?
-
Hi and welcome to devnet,
Did you install the gstreamer development packages ?
-
yes I have installed all packages which are listed on the "wiki page":http://qt-project.org/wiki/Native_Build_of_Qt5_on_a_Raspberry_Pi (first code section line 3). For gstreamer this are the following:
@libgstreamer0.10-dev
libgstreamer-plugins-base0.10-dev
gstreamer-tools
gstreamer0.10-plugins-good
gstreamer0.10-plugins-bad@gstreamer itselfs works:
@gst-launch-0.10 videotestsrc ! video/x-raw-rgb, framerate=25/1, width=640, height=360 ! ffmpegcolorspace ! fbdevsink@ -
Did you do that on your Raspberry Pi ?
-
Do you have your Pi root filesystem accessible on your desktop computer ?