Forum: PC-Programmierung (Problem(e)) Netbeans Raspberry Zero Remote C++ Programmierung


von Rüdiger W. (stimmenhotel)


Lesenswert?

Schönen guten Tag Leute,

Ich bin neu hier, stolpere aber immer wieder über euer Forum wenn Ich 
nach meinen Problemen suche.
Da Ich schon einiges versucht habe, schweife Ich nun etwas aus und fasse 
es später noch mal zusammen.

Ich habe bisher durch mein E-Technik Studium auf Windows programmiert 
und Mikrocontroller wie den Arduino oder Tiva TM4C1294, von der IDE her 
alles sehr einfach einzurichten.
Um mein Können dahingehend etwas zu vertiefen wollte Ich ein kleines 
Sensor/Automatisierungsprojekt starten, dass etwas umfangreicher wird 
als einfach Arduino-Lösungen.
Dafür habe Ich mir den kleinen Pi ZeroW besorgt und möchte ein C++ 
Programm schreiben, dass in der Konsole läuft und seine Einstellungen 
über eine "Textdatei" erhält.
Ich nutzte dieses Projekt vor allem zum lernen ... Was Ich aber nicht 
bedacht habe, dass der Pi durch sein eigenes OS schon ein eigenes Thema 
für sich ist.
Per VNC möchte Ich mich ungern verbinden, dass habe Ich schon mal in 
einem Projekt gemacht und fand es nicht sehr angenehm.
Außerdem möchte Ich eine IDE verwenden, die übersichtlicher ist als ein 
Texteditor per SSH, dafür fühle Ich mich noch nicht sicher genug...
Am liebsten würde Ich auch Cross-Compilen, da mein PC dafür besser 
geeignet ist als der Pi.

Mein Problem :
- C++ Konsolenanwendung
- Remote Programmierung mit "guter" IDE
- Wenig Erfahrung in Linux/Pi, sonst nur µC mit eingebautem Debugger 
genutzt
- Debuggen und Printf-Ausgabe ist wichtig (siehe unten)
- Optional: Cross-Compilen, da PC Leistungsfähiger als Pi

Meine bisherigen Versuche :
1) VS-Code
2) QT-Creator in Linux-VM
3) Netbeans


1) VS-Code braucht mind. ARMv7, der Zero besitzt ein ARMv6...

2) Nach folgenden Anleitungen:
https://mechatronicsblog.com/cross-compile-and-deploy-qt-5-12-for-raspberry-pi/
https://wiki.qt.io/RaspberryPi2EGLFS

Ich bekomme wohl den Pi richtig konfiguriert und Qt Creator auf der VM 
installiert, aber mir fehlen die C und C++ Bibliotheken.
C konnte Ich schon mal über die QMAKE hinzufügen, das "Hello World" 
Programm konnte aber nicht auf dem Pi ausgeführt werden.
Ich habe es aufgegeben, zumal Ich zu 90% auch keinen Schimmer hatte, was 
Ich da tue.

3) Netbeans 11.1 mit den alten C++-Plugin v8.2 funktioniert bisher am 
besten! C++ wurde direkt gefunden, der Pi als Host ist sofort 
erreichbar, Deploy und Ausführen klappt, Printf Ausgabe kommt an und 
Debug funktioniert auch.
*Nachteil*: Entweder Printf-Ausgabe oder Debugging ... Sobald Ich das 
Programm debugge erhalte Ich keine Ausgabe in der Konsole mehr.
Ich nutze die Standard Einstellungen, die Netbeans beim berbinden zum Pi 
entdeckt hat. (gbdserver, etc)
Außerdem ist es kein Cross-Compilen, womit Ich Notfalls leben kann.

Meine Frage :
zu 1) Naja... Denke da kann man nichts machen, oder?

zu 2) Weiß jemand was Ich hier falsch mache? Laut der Seiten scheint 
es direkt laufen zu müssen...
Die Bibliotheken sind ziemlich eindeutig irgendwo falsche Einstellungen, 
da sie einfach nicht gefunden werden.
Aber beim Ausführen bekomme Ich nur die Meldung "No command found" 
(glaube Ich, zur Zeit habe Ich die VM und den Pi wieder zurückgesetzt 
und kann es nicht direkt testen)

zu 3) Ist es normal, dass Ich entweder die Ausgabe sehen kann oder die 
Debug-Ansicht nutzen kann? Habe Ich irgendwas falsch eingerichtet?

Ansonsten : Ich habe durch den Titel schon ein weiteres How-To 
gefunden, was Ich dann wohl als nächstes versuchen werde: 
Beitrag "Cross-Compile & Remote-Debugging mit Eclipse" (Danke Basti)
Aber wenn jemand Ideen zu 2 oder 3 hat, würde Ich die gerne hören und 
würde sie auch noch mal ausprobieren.
Ich habe zwar keine richtige Präferenz was die IDE angeht, aber Netbeans 
und Eclipse kenne Ich bisher nur für die Java Programmierung und habe 
sonst nur CodeComposerStudio und VisualStudio genutzt.

Ich hoffe das ist jetzt nicht alles zu wirr :)
Gruß
Rüdi

von N. M. (mani)


Lesenswert?

Zu deinen Fragen kann ich nicht viel sagen.

Ich nutze meist ein Eclipse auf einem Linux Rechner, lade mir die 
Sourcen des Raspi, erstellte ein neues Projekt und Debugge über GDB 
direkt im Eclipse.
Denke Mal dass sollte auch mit dem Zero kein Problem sein. Bestätigen 
kann ich es aber nicht, da ich keinen habe.

von (Gast)


Lesenswert?

IDE vom Kaliber eines QT Creator, VS Studio oder eclipse aufm pi zero 
direkt laufen zu lassen ist IMHO nicht sinnvoll, da kommt keine Freude 
auf. Das Ding hat einfach zu wenig Prozessor und vor allem RAM dafür.

Daher wenns IDE sein muss jene auf einem richtigen PC laufen lassen, 
cross-compile falls nötig.

von Rüdiger W. (stimmenhotel)


Lesenswert?

N. M. schrieb:
> Ich nutze meist ein Eclipse auf einem Linux Rechner, lade mir die
> Sourcen des Raspi, erstellte ein neues Projekt und Debugge über GDB
> direkt im Eclipse.

Ich konnte mir durch den im letzten Part meines Post erwähnten Beitrag 
nun ebenfalls Eclipse mit der GNU Toolchain von Sysprog.com einrichten.
Es funktioniert eigentlich ganz gut, der gdbserver scheint zwar falsch 
beendet zu werden (logout statt quit), aber bisher scheint sonst alles 
zu klappen.
Mit Linux habe Ich leider noch sehr wenig Erfahrung, so dass z.B. keine 
Ahnung habe, was du mit "Sourcen vom Raspi laden" meinst.
Denke mal ähnlich wie mit der Toolchain, die "arm-linux-gnueabihf-*" 
Dateien.


rµ schrieb:
> IDE vom Kaliber eines QT Creator, VS Studio oder eclipse aufm pi zero
> direkt laufen zu lassen ist IMHO nicht sinnvoll, da kommt keine Freude
> auf. Das Ding hat einfach zu wenig Prozessor und vor allem RAM dafür.
>
> Daher wenns IDE sein muss jene auf einem richtigen PC laufen lassen,
> cross-compile falls nötig.

Die IDEs wollte Ich mitnichten auf dem Pi laufen lassen!
Genau darum ging es ja.
QT Creator lief bei meinen Versuchen die Guides nachzuverfolgen immer in 
einer Linux VM, die per SSH auf den Pi zugegriffen hat.
Ich wollte von vornherein verhindern über VNC auf den Pi zuzugreifen um 
dort eine IDE/Editor zu verwenden.

von Rüdiger W. (stimmenhotel)


Lesenswert?

Inzwischen habe Ich mir Eclipse auf Windows eingerichtet und es läuft 
soweit alles.
Ausgabe und Debug sind zeitgleich möglich.

Ich habe nur ein Problem mit wiringPi.h ...
Jede Funktion erhält beim build: undefined reference to `FUNCTIONNAME'

Ich habe inzwischen auch den Sysroot Ordner der Toolchain geupdated: 
http://gnutoolchains.com/raspberry/tutorial/sysroot

Zu meinem Fehler habe Ich bereits folgendes gefunden:
https://stackoverflow.com/questions/29262257/raspberry-pi-humidity-sensor-undefined-reference-pinmode-among-others
Dort wird gesagt, dass man "-lwiringPi" seinem Compiler übergeben soll.
Diesen habe Ich bei Eclipse unter "Properties -> C/C++ Build -> Settings 
-> Misc" eingefügt (hinter -c -fmessage-length=0).

Das hat aber nichts gebracht, jetzt weiß Ich nicht weiter.

von Kurt (Gast)


Lesenswert?

Hallo,
ja das scheint wohl ein exotisches Problem zu sein.
Ich suche auch schon seit Wochen nach einer Lösung dieses Problems.
Vielleicht hat doch einer eine Lösung.
Rüdiger, jetzt sind wir anscheinend zu zweit die diese Frage stellen.
Aber ich weiß bisher nicht mal wo ich wiringpi in elipse verwenden kann. 
Das liegt wahrscheinlich an der sysprog toolchain.
Das einzige was bisher lief war QT. Aber das läuft nur mit Linux 
vernünftig.

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.