Forum: PC-Programmierung Raspberry Pi 3B+, Programmieren, Qt, Debuggen


von sven (Gast)


Lesenswert?

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?

von sven (Gast)


Lesenswert?

bin etwas weiter gekommen .... habe auch diese Website gefunden, nur 
heute Abend keine Zeit mehr, das durchzuführen.

Werde mal die Tage sehen, ob ich damit zurechtkomme. Scheint eine 
brauchbare Anleitung zu sein.


https://scribles.net/qt-creator-cross-compiling-environment-for-raspbian-stretch-using-qtrpi/

Auch gut.
https://www.youtube.com/playlist?list=PLFsidzAJDEbBr3l0BNMDcDQlUM04GRlf2

Wo genau bekomme ich gdb-multiarch für Win10 her? Wird wohl zum Debuggen 
benötigt.

von Sven B. (scummos)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

Mit Qt Creator, gcc und gdb direkt auf dem Himbeergerät zu arbeiten wäre 
für den Anfang einfacher.

von sven (Gast)


Lesenswert?

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.

von Sven B. (scummos)


Lesenswert?

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.

von sven (Gast)


Lesenswert?

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.

von WSL (Gast)


Lesenswert?

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.

von Sven B. (scummos)


Lesenswert?

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 ...

von sven (Gast)


Lesenswert?

@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.

von Sven B. (scummos)


Lesenswert?

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.

: Bearbeitet durch User
von Michael W. (Gast)


Lesenswert?

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.

von Sven B. (scummos)


Lesenswert?

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.

von Xfce (Gast)


Lesenswert?

oder man nimmt python und muss nix compilieren.
https://www.youtube.com/watch?v=GEfTw7N-k8I

von Martin (Gast)


Lesenswert?

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.

von 900ss (900ss)


Lesenswert?

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

: Bearbeitet durch User
von Martin (Gast)


Lesenswert?

900ss D. schrieb:
> Funktioniert in Verbindung mit Eclipse

Mit welchem Framework machst du eine GUI?

von 900ss (900ss)


Lesenswert?

Ich nutze keine GUIs auf dem RPi. Hab nur Consolen-SW gemacht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.