User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Wed Mar 13, 2019 4:02 pm

MikeCC wrote:
Tue Mar 12, 2019 4:48 pm
...
Hatte anfangs schon mal die 5.12 von qt.io installiert, bis ich gemerkt hatte, dass das nicht so einfach geht.
5.12 habe ich auch schon getestet. Diese Version hat allerdings noch Fehler.
Dein erstelltes qmake sollte natürlich zur Version passen die du auf dem Host installiert hast. Es ist zwar möglich mit dem neuesten QtCreator aus der 5.12 Qt Installation mit qmake 5.10 Programme zu erstellen, allerdings fehlen dann eventuell Features wenn man zunächst alles auf dem Hostsystem getestet hat.
Das mit den Cores kommt vermutlich aus der Wiki-Quelle: https://wiki.qt.io/RaspberryPi2EGLFS (Suchbegriff "-jn").
Das erklärt einiges.

Übrigens habe ich das Tutorial für buildroot erstmal veröffentlicht. Ist noch nicht ganz fertig (erstelle den aktuellen build selbst gerade noch) und die Konfiguration von QtCreator fehlt noch... aber das funktioniert genau so wie hier also solltest du wissen was zu tun ist ;)
<~~>

sajeevank
Posts: 3
Joined: Mon Feb 25, 2019 11:25 am

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Mon Mar 25, 2019 8:16 am

Hi Mline,


Thank You for the detailed step by step by way of making a cross compile qmake for RPI in an Ubuntu Host system. I could have a qmake with Qt Multi Media options - gstreamer 1.0, ALSA and Pulse Audio enabled, by following this procedure, after several failures by doing in other ways.


Qt Multimedia:
ALSA ................................... yes
GStreamer 1.0 .......................... yes
GStreamer 0.10 ......................... no
Video for Linux ........................ yes
OpenAL ................................. no
PulseAudio ............................. yes
Resource Policy (libresourceqt5) ....... no
Windows Audio Services ................. no
DirectShow ............................. no
Windows Media Foundation ............... no

Also I could solve the problem - libicui18n.so.57: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8' - from the same thread.

There is one error message coming in Qt Crfeator when I am compiling an Application:
/opt/qt5pi/sysroot/usr/local/qt5pi/mkspecs/features/qmake_use.prf(6): 'take_first' is not a recognized replace function.
Project ERROR: Library '' is not defined.

I just neglected this and copied the application binary from host to RPI with scp command


But now I am facing a problem with QCamera Application example in qt.

Displaying the video is working fine, with sufficient speed.

When I start recording using Q Media Recorder::record(), it is showing error:

AL lib: (EE) ALCcaptureAlsa_open: Could not open capture device 'default': No such file or directory
CameraBin error: "Could not open device."
CameraBin error: "Internal data stream error."

** (simpleCamera:1361): CRITICAL **: No headers or buffers on pad muxer:audio_1630632675

ALSA is already enabled with qmake. But still it is showing some error regarding ALSA. Is there any work around to solve this problem?

Thanks & Regards,
Sajeevan.K

firemarc
Posts: 1
Joined: Wed May 01, 2019 10:53 pm

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Wed May 01, 2019 10:59 pm

Hello,

I follow the tutorial but i've one error when i compile and send to my raspberry pi.

"00:51:10: Starting /home/pi/Cheval/bin/Cheval ...
SSH is enabled and the default password for the 'pi' user has not been changed.

/home/pi/Cheval/bin/Cheval: error while loading shared libraries: libphidget22.so.0: cannot open shared object file: No such file or directory
00:51:12: Application finished with exit code 127."

For information the library "libphidget22.so" its a library that i installed for my project.

Do anybody know what is the solution ? Thanks a lot.

Meins321
Posts: 5
Joined: Thu May 16, 2019 11:43 am

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Thu May 16, 2019 11:50 am

@Mline

make fails for me, it says on my ubuntu mate that it has no target:
cd /opt/qt5pi
sudo su
make 2>&1 | tee ../make.log
*fail*
make: *** Es wurden keine Ziele angegeben und keine „make“-Steuerdatei gefunden. Schluss.

make install 2>&1 | tee ../make_install.log
*fail*
make: *** Es wurden keine Ziele angegeben und keine „make“-Steuerdatei gefunden. Schluss.

am i doing it wrong?

what i used for compiling is:
../qt-everywhere-src-5.12.3/configure -opengl es2 -device linux-rasp-pi3-vc4-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot /opt/qt5pi/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -no-gbm -skip qtscript -nomake tests -nomake examples -make libs -pkg-config -no-use-gold-linker -v 2>&1 | tee ../configure.log

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Thu May 16, 2019 1:25 pm

firemarc wrote:
Wed May 01, 2019 10:59 pm
Hello,

I follow the tutorial but i've one error when i compile and send to my raspberry pi.

"00:51:10: Starting /home/pi/Cheval/bin/Cheval ...
SSH is enabled and the default password for the 'pi' user has not been changed.

/home/pi/Cheval/bin/Cheval: error while loading shared libraries: libphidget22.so.0: cannot open shared object file: No such file or directory
00:51:12: Application finished with exit code 127."

For information the library "libphidget22.so" its a library that i installed for my project.

Do anybody know what is the solution ? Thanks a lot.
Did you install this library on your pi? You need it on your pi and your host. Also you have to link it in the .pro file of your qt project.
https://doc.qt.io/qtcreator/creator-pro ... aries.html
Meins321 wrote:
Thu May 16, 2019 11:50 am
...
cd /opt/qt5pi
...
what i used for compiling is:
../qt-everywhere-src-5.12.3/configure ...
Thats not compiling. Thats configuring. Did you execute this configure command inside /opt/qt5pi/qt5build or /opt/qt5pi?
You have to execute the make command in exactly the same folder you execute the configure command.
<~~>

Meins321
Posts: 5
Joined: Thu May 16, 2019 11:43 am

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Fri May 17, 2019 9:30 am

@mline
Hello i just did use your script and it worked!!!

What i used:
Ubuntu Mate 18.04 Dekstop variant
Raspberry Pi 3 Modell B (non plus Model)
2019-04-08-raspbian-stretch-lite.img
Qt 5.12.3 <- Just replace all the 5.10 in batch script with 5.12 and replace all 5.10.X with 5.12.3 = the link structure is the same online for 5.12.3
Qt Creator 4.9.0

Problem 1.: Can't create project folder on raspberry pi 3
i did reconfigure the qtcreator on my laptop in the guide just creating the folder for the project on the pi fails (see picture 1 )
"Failed to create remote directories:mkdir:cannot create directory '/opt/MyFirstHelloWorld':Premission denied"

Can i change the user that logs in via ssh/Qt to a root user maybe that helps?
Maybe add a permission change to the qt upload/run process?

Problem 2: The application won't run on the latest raspbian lite does changing to full really help?
if i create the folder with root rights and mkdir and chmod 777 the application still crashes...
does anyone know which librarys i need to make it run or why it wont run?
Attachments
AppCrashes.Raspbian.JPG
AppCrashes.Raspbian.JPG (106.31 KiB) Viewed 675 times
cantcreateDirectory.Pi3.JPG
cantcreateDirectory.Pi3.JPG (59.89 KiB) Viewed 683 times

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Fri May 17, 2019 4:14 pm

Meins321 wrote:
Fri May 17, 2019 9:30 am
...
You did not follow my instructions exactly
<~~>

Meins321
Posts: 5
Joined: Thu May 16, 2019 11:43 am

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Mon May 20, 2019 8:16 am

i redid the tutorial with the current Qt release and executed your bash script inside /opt/qt5pi

and i also did it once by hand (copy/paste the commands) they run throught without any special errors

how can i add the eglfs library to my project? I have seen this already: https://doc.qt.io/qtcreator/creator-pro ... aries.html

According to the guide: https://wiki.qt.io/RaspberryPi2EGLFS

export QT_QPA_PLATFORM=eglfs
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/qt5pi/plugins/platforms
export LD_LIBRARY_PATH=/usr/local/qt5pi/lib

i have to add enviroment variables but the error is the same, even after reboot :-9

I did the command for the: "Korrekte symlinks für "fehlende" Bibliotheken erstellen" still no go

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Mon May 20, 2019 8:45 am

Welches Problem hast du nun? EGLFS oder den Fehler beim Ausführen auf der Pi?!
<~~>

Meins321
Posts: 5
Joined: Thu May 16, 2019 11:43 am

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Mon May 20, 2019 3:09 pm

Fehler beim ausführen auf der Pi3b
Fehler wie im Screenshot mit raspbian image (full version)

Installation durch bash script in /opt/qt5pi/qt5build.sh
Attachments
qt513build.zip
(1.3 KiB) Downloaded 12 times

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Mon May 20, 2019 4:08 pm

Meins321 wrote:
Mon May 20, 2019 3:09 pm
Fehler beim ausführen auf der Pi3b
Wie bereits erwähnt, hast du mein Tutorial nicht zu 100% befolgt.

Code: Select all

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /home/pi/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
Statt /opt/$${TARGET}/bin steht hier /home/pi/$${TARGET}/bin
Auf /opt hat der Benutzer pi keinen Schreibzugriff.
Meins321 wrote:
Mon May 20, 2019 3:09 pm
Fehler wie im Screenshot mit raspbian image (full version)

Installation durch bash script in /opt/qt5pi/qt5build.sh
?!

Was das eglfs betrifft kann ich dir nur helfen, wenn du die Logs die angelegt werden postest. Ich vermute aber, dass du auch hier einen der Schritte im Tutorial ausgelassen hast. Eventuell ist aber auch Qt 5.12 schuld. Dieses Tutorial und auch das Script sind halt nunmal für 5.10 geschrieben.
<~~>

Meins321
Posts: 5
Joined: Thu May 16, 2019 11:43 am

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Tue May 21, 2019 8:20 am

So einmal die Logs von meiner installation direkt nach tutorial, also mit der qt5.10.1 auf einem neuen Ubuntu Mate virtualbox und dem aktuellen raspbian image (auch neu) per netzwerk zu erreichen unter 192.168.1.135.

Ubuntu Mate 18.04 Dekstop in Virtualbox
Raspberry Pi 3 Modell B
2019-04-08-raspbian-stretch-full
Qt 5.10.1
Qt Creator 4.5.1 aus dem XX.run file

Installation mit "qt5build.sh" im ordner /opt/qt5build ausgeführt.
Vorher ip adresse eingefügt 192.168.1.135 und beim compiler -device linux-rasp-pi3-g++ angegeben für raspberry pi B3


Kopieren zum Raspberry geht alles, dann bei dem Schritt "Configure" schlägt bei mir fehl :-/

qt5build.sh endet dann mit folgendem Fehler, (siehe zip Anhang "Commandline.txt")

Code: Select all

/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: crt1.o kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
> /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: crti.o kann nicht gefunden werden: Datei oder Verzeichnis nicht gefunden
> /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: -lm kann nicht gefunden werden
> collect2: Fehler: ld gab 1 als Ende-Status zurück
> Makefile:66: recipe for target 'verifyspec' failed
> make: *** [verifyspec] Error 1
Note: Also available for Linux: linux-clang linux-icc

ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.
ERROR in ./install.sh : line 85 with exit code 3
root@user-VirtualBox:/opt/qt5pi# 
Ist es eigentlich normal das der Ordner
/usr/local/qt5pi
bei mir noch nicht existiert an dieser Stelle?
Attachments
logs.zip
(6.1 KiB) Downloaded 10 times

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: TUTORIAL: Qt Crosscompile (Qt5.10.1)

Tue May 21, 2019 9:02 am

Meins321 wrote:
Tue May 21, 2019 8:20 am
...
Ist es eigentlich normal das der Ordner
/usr/local/qt5pi
bei mir noch nicht existiert an dieser Stelle?
Schon wieder ein Hinweis darauf, dass du meinem Tutorial nicht 100%ig gefolgt bist.
Dieser Ordner wird im letzten Schritt unter dem Punkt "Raspberry Pi vorbereiten" erstellt.
Installation mit "qt5build.sh" im ordner /opt/qt5build ausgeführt.
Das ist auch falsch. Steht - korrekt - ebenfalls im Tutorial

Die Fehlermeldung die du da in den Code-Tags gepostet hast deutet darauf hin, dass du auf dem Host-System nicht alle Abhängigkeiten installiert hast.

Also sorry aber ich kann und will dich nicht an der Hand durch das Tutorial führen (vor allem weil das das Tutorial schon macht). Meine Empfehlung: lösch alles nochmal und führe dann alle Schritte exakt genau so durch wie ich sie beschrieben habe. Ändere bitte auch nicht die Version. Der Unterschied zwischen 5.10 und 5.12 ist für normale Anwender ohnehin nicht relevant.
Wenn du das Script nutzen willst führe alle Schritte exakt genau so durch wie beschrieben... bis zum Schritt "Toolchain herunterladen" im Punkt "Linux Host vorbereiten (zum Beispiel Ubuntu x64)". Ab da macht das Script alles selbst.

Ab Qt Konfiguration musst du dann natürlich wieder selbst Hand anlegen
<~~>

Return to “Deutsch”