Qt5 Cross Compile Windows -> Rasberry Pi

Alles zu Entwicklungsumgebungen und Editoren für Qt
Antworten
dazligth
Beiträge: 6
Registriert: 27. Oktober 2013 16:57

Qt5 Cross Compile Windows -> Rasberry Pi

Beitrag von dazligth »

Hallo zusammen,

ich habe folgendes vor:
Ich würde gerne mit dem QtCreator und Qt5.3.0 aus Windows eine Gui-Applikation für den Raspberry Pi programmieren. Nun habe ich mich schon seit rund 4 Wochen Stück für Stück immer weiter in de Materie eingegraben, aber so richtig bekomme ich das Puzzel noch nicht zusammen. Div. Tutorials die ich finde sind zum Teil 2-3 Jahre alt und scheinen mit den neuesten Versionen, Repositories etc. nicht mehr zu harmonieren. Bestimmte Pakete, Tools usw. sind für mich ersichtlich nicht vorhanden oder ich habe nicht herausgefunden was für Anpassungen ich machen muss, um es doch zum laufen zu bekommen.

Mal eine knappe Beschreibung was ich schon alles getan habe:
In einem ersten Schritt habe ich versucht es erstmal von Linux (Ubuntu 14.04 in VirtualBox) aus hin zu bekommen, um ein grundsätzliches Verständnis aufzubauen.
Hierzu bin in nach dieser "Anleitung" vorgegangen:
https://qt-project.org/wiki/RaspberryPi_Beginners_guide
Hierbei bin ich aber an dem Punkt "./init-repository" nicht weiter gekommen, der immer wieder fehl schlug, bzw. nicht durchliefen. Beim Versuch die Skripte zu zu verstehen bin ich dann nicht weiter gekommen.
Ähnlich erging es mir mit dieser Variante:
http://www.ics.com/blog/building-qt-and ... spberry-pi

Da dies nicht geklappt hat, bin ich einen weiteren Schritt zurück gegangen und habe Qt5 auf dem RasPi für den RasPi kompilliert.
Nach dieser Anleitung:
http://qt-project.org/wiki/Native_Build ... spberry_Pi
Nach 1-2 Tagen der kompilierung klappte das so halb. Irgendwas stimmt mit dem OpenGL noch nicht. Einen Bruchteil einer Sekunde wird kurz etwas angezeigt und dann bleibt der Bildschim schwarz, aber z.B. ein Taschenrechner-Beispielprogramm:
Qt\5.3\Src\qtbase\examples\widgets\widgets\calculator
läßt sich auf dem RasPi compilieren und ausführen. Also ganz verkehrt ist das nicht.

Anschließend habe ich folgende zwei Tutorials ausprobiert:
http://www.gurucoding.com/en/rpi_cross_ ... /index.php
http://www.a2p.it/wordpress/tech-stuff/ ... spberrypi/
Beide sind darauf ausgelegt aus Eclipse mit C++ heraus, den RasPi zu befeuern.
Auch hier gab es keinen Erfolg zu verzeichnen. "Mobile development Pakete" die man nachinstallieren muss, gibt es nicht zur Auswahl, wohlmöglich sind die in der neuesten Version schon integriert oder habe den Sprung in die neueste Version nicht geschafft. Trotz dass der Pfad zur make.exe in die Path config eingetragen ist, meldet die Entwicklungsumgebung "Program "make" not found in PATH".
Nun ja, Eclipse ist auch nicht das was ich brauche, ich hatte nur gehofft hierbei mehr zu lernen worauf es ankommt.

Und damit kommen wir zu meiner eigenlichen Fragestellung...
Ich schildere mal was ich glaube das ich brauche:

1. Eine Toolchain, folgende habe ich gefunden und sollten auch alle gehen:
http://gnutoolchains.com/raspberry/ (sogar mit qt4 anleitung, war aber so alt, dass es mit aktuellen Versionen nicht klappt).
https://launchpad.net/linaro-toolchain-binaries/trunk/
https://github.com/IanLinsdell/Raspberrypi
http://www.gurucoding.com/en/rpi_cross_ ... /index.php diese habe ich sogar gekauft.

Wie im Bild zu sehen habe ich den GCC-Kompiler und den gdb-Server des gurucoding cross tools eingebunden.

2. Den RasPi als Device "Generisches Linux Gerät" einbinden. Ich kann mich auch verbinden und die Prozesse aus dem QtCreater heraus sehen.

3. Sysroot, ja was ist das eigendlich? Wenn ich das richtig verstanden habe, soll dass ein gleichwertiges Abbild meiner "Umgebung des Zielsystems" sein. Aber was bedeutet das genau? In einem Tutorial mußte ich mal einen sysroot Ordner einbinden, dort lagen eine Menge header files. arm-unknown-linux-gnueabi\sysroot\usr\include
Also konkret:
a) Was erwartet Qt im Sysroot zu finden, auch im Hinblick auf die Kompilierung des späteren Programmes? Benutze es diese? Bei Entwicklung von Desktop-Programmen wird im Sysroot nichts eingetragen? Brauche ich das überhaupt?
b) Und wenn er doch braucht, was muss ich im Hinblick auf den Systemunterschied beachten? Ich bin auf Windows x68 mit 64 bit unterwegs und das Zielsystem ist ein linux arm6. Ich kann doch nicht einfach linux dateien auf meinem windowssystem einbinden?!?

4. Qt-Version:
Hier gibts eine Menge Qt-Versionen zur Auswahl(s.Bild), aber nicht was ich brauche. Oder?
Ich muss doch die Qt-Sourcen nochmal neu kompilieren. Ähnlich wie im aller ersten Beispiel des Ubuntu nach RasPi Cross Compiles, brauche ich jetzt eine Qt Version die auf einer x86 Architektur ausgeführt, aber Code erzeugt, der für eine Arm6 Architektur gemacht ist.
Sehe ich das richtig? Hat jemand einen Tipp wo ich mich dazu am Besten schlau machen kann?
Hat hier jemand sowas schonmal gemacht?

Hoffe ich bin hier richtig und das ist für euch kein Neuland oder sogar zu "hoch".

Gruß,
Sebastian
Dateianhänge
RasPi.png
RasPi.png (53.53 KiB) 8673 mal betrachtet
Antworten