Qt 5.7 Coss-Compile with Raspberry Pi 3
-
I have apt-get install gstreamer1.0* and install tslib1.4 on Raspberry Pi 3.
BUT when I configure Qt-opensource-everywhere, it shows
checking for tslib... no.
The tslib functionality test failed!
and also
checking for gstreamer... no.
The gstreamer 1.0 functionality test failed!what should I do?
-
@jsulm
I have installed gstreamer 1.0-dev and tslib1.4. But Qt can't find them. I install tslib in /usr/local/tslib and apt-get install gstreamer1.0-dev. I guess it is because I install in the wrong path. But I don't know where should I install.
I am really cross-compile. That means I build Qt on my x86 computer and install on x86, but some shared lib is on raspberry. I finish my code on x86 and build on x86 but remote debug or release on raspberry. -
@jsulm
The installed gstreamer-dev is as follow.(On Raspberry Pi)gstreamer1.0-clutter-3.0 (3.0.18-1)。
gstreamer1.0-clutter (2.0.18-1)。
gstreamer1.0-dvswitch (0.1.1-1)。
gstreamer1.0-espeak (0.4.0-1)。
gstreamer1.0-fluendo-mp3 (0.10.32.debian-1)。
gstreamer1.0-nice (0.1.13-0ubuntu2)。
gstreamer1.0-pocketsphinx (0.8.0+real5prealpha-1ubuntu2)。
gstreamer1.0-alsa (1.8.2-1ubuntu0.1)。
gstreamer1.0-doc (1.8.2-1~ubuntu1)。
gstreamer1.0-plugins-base (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-base-apps (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-base-dbg (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-base-doc (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-good (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-good-dbg (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-good-doc (1.8.2-1ubuntu0.1)。
gstreamer1.0-pulseaudio (1.8.2-1ubuntu0.1)。
gstreamer1.0-tools (1.8.2-1~ubuntu1)。
gstreamer1.0-x (1.8.2-1ubuntu0.1)。
gstreamer1.0-hybris (1.8.2-1ubuntu0.1)。
gstreamer1.0-libav (1.8.2-1~ubuntu1)。
gstreamer1.0-libav-dbg (1.8.2-1~ubuntu1)。
gstreamer1.0-packagekit (0.8.17-4ubuntu6~gcc5.4ubuntu1.1)。
gstreamer1.0-plugins-bad (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-bad-dbg (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-bad-doc (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-bad-faad (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-bad-videoparsers (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-ugly (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-ugly-amr (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-ugly-dbg (1.8.2-1ubuntu0.1)。
gstreamer1.0-plugins-ugly-doc (1.8.2-1ubuntu0.1)。
gstreamer1.0-vaapi (1.8.2-1~ubuntu2)。
gstreamer1.0-vaapi-doc (1.8.2-1~ubuntu2)。 -
@ascnp That I don't understand (it actually doesn't make sense):
"That means I build Qt on my x86 computer and install on x86, but some shared lib is on raspberry."
Raspberry is not x86, it is ARM. So, how exactly do you build for Raspberry? To cross compile you need a sysroot (basically the filesystem of your target device). This sysroot must contain all needed libraries and header files. I guess you installed the *dev packages on your x86 system? If so this will not help at all. You need to install them on your Raspberry SDCard (you can do it on Raspberry directly) then put this SDCard into your PC mount it and use it as sysroot.
You can find information here http://wiki.qt.io/Qt_RaspberryPi -
@jsulm
I know that. I am exactly doing that. First, I install tslib1.4 and gstreamer1.0 on raspberry. And then mount the raspberry SD card on my x86 system. I also get a cross-compile tools. All I list gstreamer1.0-dev is install on my Raspberry. But when I configure qt, it can't find them. -
@ascnp Why did you install the dev packages in /usr/local? I'm not sure whether configure looks there by default. You can try to pass these directories to configure, or even better install the packages in their default locations.
-
@jsulm
you mean /usr/lib? Actually, I am not quite sure where should I install tslib. I have tried to copy all tslib file to /usr/lib, but it didn't work. But my gstreamer1.0 is install by apt-get. Qt also can't find gstreamer. That don't make sense. -
@ascnp said in QT5.7 Coss-Compile with Raspberry Pi 3:
gstreamer1.0-nice (0.1.13-0ubuntu2)
gstreamer1.0-pocketsphinx (0.8.0+real5prealpha-1ubuntu2)
gstreamer1.0-alsa (1.8.2-1ubuntu0.1)
...I have no experience with rpi, but why do you have ubuntu packages installed on a debian? It looks wrong.
For example: https://packages.debian.org/jessie/gstreamer1.0-alsa
There isn't any ubuntu mentioned there.@jsulm said in QT5.7 Coss-Compile with Raspberry Pi 3:
I'm not sure whether configure looks there by default.
It does, at least for
/usr/local/lib
and/usr/local/include
. -
@p3c0
I add -v and it showsthe tslib:
checking for tslib...
/home/lxy/Downloads/qt5.7安装/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/opt/rasp-pi-rootfs-qt5.7 -O2 -Wall -W -fPIC -I. -I/opt/rasp-pi-rootfs-qt5.7/usr/local/tslib -I../../../mkspecs/devices/linux-rasp-pi-g++ -o tslib.o tslib.cpp
tslib.cpp:40:19: fatal error: tslib.h: No such file or directory
compilation terminated.
Makefile:195: recipe for target 'tslib.o' failed
make: *** [tslib.o] Error 1
tslib disabled.
The tslib functionality test failed!and gstreamer1.0:
checking for GStreamer 1.0...
Project ERROR: gstreamer-audio-1.0 development package not found
GStreamer 1.0 disabled.
The GStreamer 1.0 functionality test failed!It looks like that I don't install tslib in the correct path. But I don't know where should I install.
I will check if I really install gsreamer-audio-1.0 -
$ ls -R
.:
bin etc include lib./bin:
ts_calibrate ts_harvest ts_print ts_print_raw ts_test./etc:
ts.conf./include:
tslib.h./lib:
libts-0.0.so.0 libts-0.0.so.0.1.1 libts.la libts.so pkgconfig ts./lib/pkgconfig:
tslib-0.0.pc./lib/ts:
arctic2.la corgi.la h3600.la linear_h2200.la mk712.la ucb1x00.la
arctic2.so corgi.so h3600.so linear_h2200.so mk712.so ucb1x00.so
collie.la dejitter.la input.la linear.la pthres.la variance.la
collie.so dejitter.so input.so linear.so pthres.so variance.soAs is shown above, tslib.h is in /usr/local/tslib/include.
And I find that I did not have gstreamer1.0-audio. And apt-get can't get gstreamer1.0-audio.
-
@jsulm
yes, it is in /opt/rasp-pi-rootfs-qt5.7/usr/local/tslib/include. Because I run ls -R on raspberry, so it seems in the wrong path. But when I mount SD card on x86 system, it will be in the path as you say.I am trying to install gstreamer1.0-audio. But apt-get can't find it.
-
@ascnp said in QT5.7 Coss-Compile with Raspberry Pi 3:
yes, it is in /opt/rasp-pi-rootfs-qt5.7/usr/local/tslib/include.
How did it end up there?/usr/local/tslib
isn't a standard search location for includes.
Edit: Don't mind me, it doesn't really matter as it's passed as an additional include path.PS
I don't know how correct you are by saying your distro is almost the same as jessie, as jessie doesn't providelibts
at all. It appears to be deprecated or something. -
@ascnp No, what I mean is: you need to pass -I/opt/rasp-pi-rootfs-qt5.7/usr/local/tslib/include instead of -I/opt/rasp-pi-rootfs-qt5.7/usr/local/tslib to configure. Or move the header file one directory up (to /opt/rasp-pi-rootfs-qt5.7/usr/local/tslib).
/home/lxy/Downloads/qt5.7安装/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/opt/rasp-pi-rootfs-qt5.7 -O2 -Wall -W -fPIC -I. -I/opt/rasp-pi-rootfs-qt5.7/usr/local/tslib -I../../../mkspecs/devices/linux-rasp-pi-g++ -o tslib.o tslib.cpp
Regarding gsreamer-audio-1.0: I don't know what the correct name is. Just list all gstreamer packages and see whether you can find one with audio (maybe gsreamer-alsa-1.0?).
-
@ascnp said in QT5.7 Coss-Compile with Raspberry Pi 3:
@jsulm
yes, it is in /opt/rasp-pi-rootfs-qt5.7/usr/local/tslib/include. Because I run ls -R on raspberry, so it seems in the wrong path. But when I mount SD card on x86 system, it will be in the path as you say.I am trying to install gstreamer1.0-audio. But apt-get can't find it.
Try installing
libgstreamer-plugins-base1.0-dev