Hallo,
habe mir einen Raspberry Pi 3B+ mit Display gekauft und möchte dafür
eigene Programme mit Qt entwickeln und debuggen. Betriebssystem am PC
ist Windows 10. Den Pi habe ich mit NOOBS Installer, welcher wohl das
Image „RASPBIAN STRETCH WITH DESKTOP“ auf der SD Karte installiert hat,
zum „laufen“ gebracht. Über „putty“ kann ich eine Remote Verbindung
aufbauen.
Nun möchte ich Applikationen mit Qt Programme für den Raspberry
schreiben.
Auf dem PC habe ich Qt Creator 4.6.1 based on Qt 5.10.1 installiert und
kann Applikationen für Android oder Win10 schreiben, debuggen also Spaß
haben. Das möchte ich nun entsprechend für den Pi einrichten und hier
scheitert es gerade.
Meine erste Frage ist, ob das mit der Open Source Qt Version überhaupt
möglich ist?
Bei der Kommerziellen Qt Version kann man beim Installieren scheinbar
entsprechende Settings zusammenklicken, welche bei der open source
Version nicht angeboten werden, aber eventuell manuell eingerichtet
werden können. Das weiß ich eben nicht.
Soweit eine kurze Erläuterung damit ihr in einschätzen könnt wo ich in
etwa erfahrungstechnisch mit dem „#+‘%$&+ depri Zeugs“ stehe.
Gibt es eine Möglichkeit den Qt Creator mit der open source Version für
mein Vorhaben zu nutzen.
Im Qt Creator unter Tools/Options/Devices/Add/Generic Linux Device/Start
Wizard kann ich z.B. keine Einstellung vornehmen, die mir erlaubt in den
nächsten Step zu gehen. Der „Next“ Button ist permanent ausgegraut. Mein
Fehler oder geht das nicht?
Hm, muss man wirklich als Anfänger mit gdb-multiarch von Windows 10 x86
eine arm-Anwendung unter Linux remote-debuggen? Gibts da keinen
einfacheren Einstieg? Nimm halt den gdb auf dem Pi oder so ...
Generell klingt für mich das Setup für "keine Erfahrung" relativ
komplex, ich würde mir erstmal was simpleres suchen (i.e. nicht
cross-platform und cross-arch), um Frust beim Einstieg zu vermeiden.
Will auf dem Gebiet ja nicht Anfänger bleiben.
Als ungebranntes Kind auf dem Gebiet erkennt man die beschriebene Mühsal
nicht einmal.
Ist beides eine Setting / Einrichtungssache. Ohne gute Anleitung ist
beides zum Scheitern verurteilt. Mit guter Anleitung vermutlich beides
ein Kinderspiel.
Um Erfahrung zu sammeln würde ich sogar beide Wege gehen wollen und mich
dann für den für mich optimaleren entscheiden.
Aber dazu braucht es Anleitung. Mal sehen, was ich im www finde.
Ansonsten freue ich mich über entsprechende Links zu diesen Anleitungen.
Der einfachere Weg ist vermutlich installieren des Qt Creators auf dem
Raspberry Pi und dort compillieren und debuggen.
Meines Erachtens lernt man beim Einrichten eines (Cross)compilers unter
Windows so ziemlich gar nichts, außer dass es sehr mühsam ist und man es
lieber nicht nochmal machen will. Das ganze "Wissen" besteht immer
darin, in welchem Dialog von welchem Installer den man wo runterlädt man
welche Checkbox setzen muss damit es geht -- ziemlich nutzlos.
Ich will ja nicht mein Leben lang Cross Compiler einrichten.
Eine gute Anleitung für Windows für mein Vorhaben und gut ist.
Ich will in Qt für den Raspberry Pi Progrämmchen schreiben, Kompilieren
und debuggen können.
Einrichten von Entwicklungsumgebungen ist eher nervig.
Aber ich sehe schon, für Windows ist da nicht wirklich viel im www zu
finden.
Zumindest bis jetzt gescheitert.
Suche gerade gdb-multiarch für Windows. Sofern es das dafür überhaupt
gibt.
Für Linux habe ich es gleich gefunden.
Daher meine Überlegung:
Ich installiere mir in einer Virtual Machine Ubuntu ... oder welche
Linux Distribution am besten???
Dann auf diese Plattform Qt und den Rest bekomme ich gut über die weiter
oben verlinkten Seiten hin.
Eine Möglichkeit wäre das vermutlich.
Aber ..... gibt es da einen beschriebenen Weg für Windows.
Ohne Beschreibung, bekäme ich das auch nicht für Linux hin.
sven schrieb:> Ich installiere mir in einer Virtual Machine Ubuntu
du kannst vielleicht auch die virtuelle Maschine Weglassen, und direkt
Ubuntu-Binaries unter Windows ausführen:
https://heise.de/-4006641
sozusagen inverses WINE.
WSL schrieb:> sven schrieb:>> Ich installiere mir in einer Virtual Machine Ubuntu>> du kannst vielleicht auch die virtuelle Maschine Weglassen, und direkt> Ubuntu-Binaries unter Windows ausführen:>> https://heise.de/-4006641>> sozusagen inverses WINE.
Wenn du dadrin QtCreator und arm-gdb starten kannst, fress ich 'nen
Besen ...
@Sven B.
Du lässt durchscheinen dass du da schon mehr möglicherweise leidvolle
Erfahrung gemacht hast.
Was ist denn dein neutraler Ratschlag.
Gibt es einen beschriebenen Weg im www wie das unter Win10 zu machen
ist? Ein Link.....
Oder gleich auf virtuelle Maschine und Linux gehen.
In ein kompiliertes binary Qt reinzubekommen meinte
WSL nicht, denke ich.
Aber ich muss dem Qt auf win10 sagen, wo
GDB-multiarch zu finden ist .... und da habe ich nichts für win gefunden
nur für Linux.
Ist halt gerade mühselig da ich nichtmal weiß ob dieser weg über win
überhaupt machbar ist.
Meine ganz persönliche, subjektive Erfahrung ist folgende (die bezieht
sich aber vorrangig auf Entwickeln von Desktop-Anwendungen):
Entwickeln unter Windows ist generell ziemlich mühsehlig, außer
vielleicht man hat $IDE für genau die Plattform die man benutzen möchte
und kommt mit der gut zurecht. Unter Linux hat man sich viel schneller
was zusammgensteckt.
Die GNU Toolchain unter Windows ist auch ziemlich meh. Wenn ich unter
Windows C/C++ mache, nehme ich den MS-Compiler mit zugehörigem Debugger
(funktioniert auch mit QtCreator).
Die GNU Toolchain ist generell ziemlich meh wrt Cross-Platform. Bis
man sich so einen Cross-gcc kompiliert hat, ist man halb tot -- das
Build-System ist fürchterlich und voller Bugs diesbezüglich. Für
baremetal geht es noch so halbwegs, aber sobald man die glibc-ABI
braucht ist es ein unglaubliches Leid. Hier ist man mit llvm/clang
deutlich besser dran, außer man will halt Linux kompilieren, das geht
damit nicht (willst du ja aber nicht).
Was für dich funktioniert hängt halt von deinen Vorlieben und
Vorerfahrungen ab. Ich denke aber, dein Vorhaben ist erheblich leichter
umzusetzen, wenn du es einfach unter Linux machst.
Ich wäre auch daran interessiert, mich in der Richtung zu vertiefen.
Was wäre denn Deiner Erfahtung nach der einfachste Weg für einen
Anfänger, für einen RASPI eine Linux Programm hinzubekommen, dass ein
bischen serielle Schnittstelle bedienen kann, also Daten aus einem
RAM/Flash laden und sie abschicken?
Ich hätte gerne eine GUI mit Knöpchen und Reglern, die auch komplett auf
dem RASPI läuft. RASPIAN Strech wäre jetzt auch meine Wahl gewesen.
Vermutlich einen Bildschirm an das Pi hängen und dort QtCreator
installieren und starten. Das ist viel einfacher als die ganzen
Cross-Compiler-Lösungen, hat halt den Nachteil, dass man mit der
gurkigen CPU kompilieren muss (dauert lange). Aber für den Anfang ist
das vermutlich ok.
Ich habe auf meinem PC Windows und eine virtuelle Linux Maschine. Auf
beiden Systemen ist Qt installiert. Für den RPi programmiere ich in der
VM. Im QtCreator muss angegeben werde in welchem Verzeichnis auf dem RPi
dein Programm landen soll. Auf das Verzeichnis müssen die entsprechenden
Rechte vorhanden sein. Am besten unterhalb deines /home/pi
Verzeichnises.
Ich habe mir den Crosscompiler und die Toolchain selbst kompiliert.
Dafür gingen schon einige Stunden drauf aber ich habe auch viel gelernt
dadurch.
Ich nutze zum Entwickeln für RPi das hier:
http://gnutoolchains.com/raspberry/
Funktioniert in Verbindung mit Eclipse
(Projektverwaltung/editieren/debuggen) recht gut.
Edit: Windows 8.1 auf dem Entwicklungsrechner