mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Rüdiger W. (stimmenhotel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: N. M. (mani)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: rµ (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rüdiger W. (stimmenhotel)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rüdiger W. (stimmenhotel)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.