welche simple IDE für C?

L I V E Stammtisch ab 20:30 Uhr im Chat
  • hallo,
    welche simple IDE für ANSI C ist zu empfehlen?
    der C-Compiler sollte preemptives Multitasking unterstützen wie POSIX pthread z.B. oder die C11-Multitasking-Libs.
    kein Eclipse bitte, am besten irgendetwas, was so simpel ist und so einfach funktioniert wie Sketch für Arduino, und wo man keine Kommandozeilen braucht, kein ssh oder puTTY und kein makefile (eben wie bei Arduino).

    Was gibt es da für den RasPi?

    Einmal editiert, zuletzt von HaWe (15. April 2015 um 10:32)

  • Hallo HaWe,

    meiner Meinung nach eindeutig: Geany.

    Diese IDE hat den Vorteil, dass die für C und einige der gängigen Programmiersprachen vollständig eingerichtet ist.

    Außerdem kann Geany - sofern man weiß wie - für jede gängigen Programmiersprache einrichten.

    Somit ist die Bedienung im Sinne von Compilieren (s. aktuellen Thread dazu ;)) für jede Programmiersprache identisch. Das macht es wesentlich einfacher, neue Sprachen zu erlernen - da die Bedienung eigener GUI entfällt.


    Diesen Vorzug genieße ich immer wieder, da ich ja ein Vielsprachen-Programmierer bin. Einfach Geany starten, Programmiersprache angeben - und los geht's. Dann F5 drücken und das neue Programm läuft... F8 und die Bibliothek steht...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • das klingt doch mal richtig gut :)
    Geany 1.24.1 ? http://www.geany.org/Main/20140416 ?

    dann werde ich jetzt mal meine allerersten Gehversuche mit RasPi machen (sicher zuerst noch mit Python), und dann gleich mit Geany C weitermachen.

    Hast du noch Tipps zur Einbindung des C Compilers und vielleicht ein deutsches Schritt-für-Schritt Einführungs- und Programmier-Tutorial?

    Es steht ja nur etwas von Texteditor da, aber Cross-Compiler für Raspian usw. braucht man doch sicher auch noch zusätzlich, oder?
    Und die C API für den RasPi muss man ja sicher auch erst kennenlernen...

    Einmal editiert, zuletzt von HaWe (15. April 2015 um 11:19)


  • ..., aber Cross-Compiler für Raspian ...

    Wenn Du für den Pi2 (arm7) kompilierst und ein Linux auf deinen PCs hast, dann kannst Du z. B. dafür auch gcc-arm-linux-gnueabihf verwenden:

    Code
    :~$ apt-cache show gcc-arm-linux-gnueabihf | grep -iE 'architecture|cross'
    Architecture: i386
    Source: gcc-defaults-armhf-cross (1.8)
    Recommends: libc6-dev-armhf-cross | libc-dev-armhf-cross
    Filename: pool/universe/g/gcc-defaults-armhf-cross/gcc-arm-linux-gnueabihf_4.6.2-7_i386.deb
    Description-en: The GNU C compiler for armhf architecture
     This is a dependency package providing the default GNU C cross-compiler for
     armhf architecture.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • hallo,
    nein, kein Linux auf meinen PCs - nur Windows XP32 und Windows 7/ 64 bit pro
    auch keine Linux-Emulatoren auf den PCs vorhanden, denn ich mag eigentlich kein Linux - und vor allem kein ssh oder puTTY und keine Linux-Commandozeilen-Befehle.... ;)

    (ps, ich fragte ja nach einer IDE, nicht nach einem nackten Editor - in einer IDE muss aber doch der Compiler auch eigentlich schon integriert sein, so dass man ihn nur "anhaken" muss etc. - oder...? So wie auch bei der Arduino Sketch IDE für Windows der Compiler und die API samt libs und Beispielprogrammen auch gleich mitinstalliert werden... ? :s
    Ich glaube, ich brauche da wirklich ein gutes Erst-Einsteiger- Installations- und Raspi-C- Anfänger-Tuturial )

    Einmal editiert, zuletzt von HaWe (15. April 2015 um 12:11)

  • Wie sind eure Erfahrungen mit Geany?
    Bei mir treten immer wieder Probleme nach einer längeren Nutzung auf. Ich kann Zeichen nicht eingeben z. B. ~. Kopieren und einfügen funktioniert nicht. usw.
    Dann starte ich das Programm neu und es geht wieder.
    Verwende putty mit X11 forward + Xming und Windows 7 64 bit.

    Habs jetzt schon ein paar mal verlinkt - diese Anleitung beschreibt Geany Einrichtung für Remote Windows und Linux.
    http://evil.hn.vc/linux/Raspberr…0Hygrometer.pdf

    PS:
    Geany hat den Nachteil - Kein Debuggung
    wenn das benötigt wird sollte man Codeblocks testen. Ich komme aber bisher gut mit geany zurecht.

    PPS: was ist mit c++? wieso nur ansi c. ich hab mittlerweile die Nase voll von dem alten C.

    Einmal editiert, zuletzt von evil (15. April 2015 um 12:13)

  • ich kann kein OOP (C++, C#, Java,...), das widerspricht meinem prozeduralen Denken total.
    Sehe ich nur Klassen, Instanzen, Implementationen, Extensionen wird mir ganz wirr.
    Bei Arduino Sketch kriegt man es allerdings so serviert, dass man davon gar nichts mitkriegt,
    und ob ich schreibe
    void foo(x,y,z)
    oder
    irgendwas.foo(x,y,z)
    ist mir natürlich egal.


    Aber ANSI C ist klar und logisch und strukturiert und direkt, jede Prozedur kann direkt verwendet werden, Hauptsache eine entsprechende lib ist #included -
    - genau wie ichs brauche, und nichts (keine Variable und keine Methode) ist irgendwie blöde lokal oder privat in einem Objekt verkapselt, wenn ich sie brauche (notfalls übergebe ich sie als lokale Variable per reference oder pointer).

    Aber puTTY oder ssh möchte ich nicht verwenden müssen...!
    Windows-Programm-Editor an,
    USB einstöpseln,
    Programm schreiben,
    per Knopfdruck kompilieren,
    per USB Upload auf den Raspi,
    Programm starten,
    fertig.

    so wie auf den Arduinos eben, da geht's ja auch ohne puTTY, nur USB Stecker rein und gut ist.

    Einmal editiert, zuletzt von HaWe (15. April 2015 um 12:48)

  • also ehrlich, ein bisschen putty und xming installieren und starten und dann gehts doch genau so wie du willst (ohne "per USB Upload auf den Raspi").
    Einmal das setting gemacht und du startest es mit einem Klick. Kompilieren ausführen je ein Button alles unter z.B. Windows.
    Open Mind!
    Was dazulernen. nicht nur stur das alt erlernte praktizieren.
    Und das meine ich auch in Bezug auf C++.

    Aber wenn du mit C glücklich bist sehe ich keinen Grund warum du wechseln solltest. Ich sehe halt die Vorteile vom C++ Compiler und wollte mal wissen wieso Leute auf C fixiert sind.

    Einmal editiert, zuletzt von evil (15. April 2015 um 12:50)

  • jo - open mind ist gut wenn man jung ist aber einem beinahe-Rentner wie mir fällt das schwer.
    Aber mal gucken :)

    (ich hatte schon darauf gehofft, mein Raspi wäre heute in der Post dabei und ich könnte gleich loslegen, muss aber nun doch leider noch warten...)

    Einmal editiert, zuletzt von HaWe (15. April 2015 um 12:55)

  • Also wenn du schon keine Konsole magst (ist Linux etwas ausser Konsole?), solltest du dir X11-Forwarding über SSH anschauen. Damit baust du über SSH einen Desktop auf deinem Hauptrechner auf. Vorteil, dem Rpi stehen dann deutlich mehr Ressourcen zur Verfügungen als Über VNC, RDP ...

    Als IDE empfehle ich ebenfalls auch Geany mit dem Artistic Styler Plugin für die Code Formatierung. Kleine Änderungen mache ich in Geany, wenn es größere Projekte sind, greife ich mit Hilfe von Eclipse zum CrossCompiler. Die einmalige Ausrichtung ist aber um einiges aufwendiger.

    Den GCC Untersatz musst du über die Repos vom Debian nachinstallieren, falls es dein Image noch nicht mit sich bringt.

  • hallo,
    das ist mir alles noch ein wenig zu böhmisch mit GCC Untersatz, Repos, Debian nachinstallieren und Image (ich habe einfach Raspbian per Noobs). :helpnew:

    Ich bin kein Linux-User, und will es auch nicht werden, denn am Betriebssystem interessiert mich einzig und allein, dass es läuft.
    Auch bei meinen AVR und ARM Arduinos und NXTs interessiert mich nicht das Betriebssystem, und es läuft trotzdem :cool:
    Ich krieche ja auch nicht in die Windows- Eingeweide, um WORD zu starten und einen Text zu tippen oder mit Firefox was per Google zu suchen. :s
    Auch bei Arduinos brauche ich das alles nicht: ich habe ein setup-Programm, das mir alles fix und fertig auf meinem PC installiert, und dann brauche ich mich um nichts mehr zu kümmern. :thumbs1:
    Dann starte ich die IDE und kann programmieren und per Button uploaden und es läuft! :bravo2: (naja - bis auf die lahmen Displays zumindest und preemptives Multitasking... :stumm:
    Ich bin durchaus im engen Rahmen lernfähig, keine Frage (sonst würde ich keine neuronalen Netze programmieren), aber ich will mich mit meinen Programmcodes auseinandersetzen und nicht mit Betriebssystem-Eigenheiten und shell-Befehlen oder ssh und Netzwerk - oder Tage und Wochen brauchen, um erstmal überhaupt die IDE zum Laufen zu kriegen. Wie man mit Noobs Raspbian auswählt zum Booten, habe ich aber ja immerhin schon verstanden. :daumendreh2:

    Und dann will ich jetzt mal sehen, wie weit ich komme. :rolleyes:

    Einmal editiert, zuletzt von HaWe (15. April 2015 um 15:08)

  • Auf den Arduinos läuft auch kein Betriebssystem. Das wäre sowas ähnliches wie RiscOS. Mit der Arduino IDE wird unter Windows der AVR-GCC automatisch mitinstalliert, bzw. zur Verfügung gestellt. Anders als Windows werden Linux Systeme bereits mit vorinstalliertem GCC Compiler ausgeliefert. Ausnahme, man verwendet ein MinmalImage/NetInstall Image. Hier sind wirklich nur die nötigsten Softwarepacket installiert. Da muss dann aber auch jede Kleinigkeit nachgeladen werden, was aber nicht das Problem (eher Segen) darstellt.
    Bei Raspian sollte alles bereits mitgeliefert sein.

    Sowas wie setup() gibt es in GCC nicht. Bei Arduino ist das auch nur einfach maskiert, um es den User möglichst einfach zu machen. Das sind nur die Anweisung, die bei Eintritt der main() einmal ausgeführt werden, ehe es ist die while(1) Schleife für unbestimmte Zeit geht. Hier sind übrigends delays() in Form von sleep() oder usleep() erwünscht. Andernfalls dürftest du die Prozessorlast hochschrauben.

    Wenn du Programme übers Terminal installierst, werden auch bei Linux die Abhängigkeiten mitinstalliert, aber nicht immer gibt es ein Startup Script, welches alles bereits einstellt, sowas muss man dann per Hand machen. Einmal Geany mit den ausführenden Kommandos ausgerüstet, reicht ein einfacher Tastendruck um zu Kompilieren und auszuführen. Ggf. wäre es für einen Anfänger sinnvoll, dass ganze mit dem Benutzer pi (root) zu machen. Denn der Zugriff auf die GPIOs erfordert dieses Zugriffslevel.

    Fazit: Nehm Geany, richte diesen ein.

    Geany -> Datei -> Neu(aus Vorlage) -> main.c; Erstellen -> Kommandos zum Erstellen konfigurieren ->
    Kompilieren: gcc -Wall -c "%f" -lpigipio -lpthread -lrt
    //Die letzten 3 Parameterübergaben können varieren, je nachdem, welche GPIO Verwaltungssoftware du nutzt. Bei wiringPi wäre das -lwiringPi -lwiringPi-Dev
    Erstellen: gcc -Wall -o "%e" "%f" -lpigpio -lpthread -lrt
    Auführen: sudo "./%e"
    // Sollte der aktuelle Benutzer zur Gruppe root gehören, entfällt sudo.
    Nun kannst du Kompilieren mit F8, Erstellen mit F9 und Ausführen mit F5

    P.S: Du wirst dich über kurz oder lang mit Linux auseinandersetzen müssen. Nicht für alles sind zwingend Tutorials vorhanden.

  • Moment - das klingt nach einem ganz neuen Gesichtspunkt -
    heißt das, ich brauche gar keinen Crosscompiler wie bei Arduino oder NXT?
    Editiere und compiliere ich direkt auf dem RasPi?
    So wie ich mit Turbo C seinerzeit Programme auf einem DOS-Rechner für diesen DOS-Rechner compiliert und auf ihm direkt gestartet habe?

    Einmal editiert, zuletzt von HaWe (15. April 2015 um 15:24)


  • Moment - das klingt nach einem ganz neuen Gesichtspunkt -
    heißt das, ich brauche gar keinen Crosscompiler wie bei Arduino oder NXT?
    Editiere und compiliere ich direkt auf dem RasPi?
    So wie ich mit Turbo C seinerzeit Programme auf einem DOS-Rechner für diesen DOS-Rechner compiliert und auf ihm direkt gestartet habe?


    HaWe:
    Ja genauso. Ist doch das gleiche, wenn man auf dem Windows Rechner oder Linux Rechner ein kleines C Programm schreibt und dieses anschließend ausführt.
    Eine IDE ist ja mehr oder weniger auch nur das Frontend, wenn man so will.

    evil:
    Du hast doch die Qual der Wahl. Xming + Putty ist nicht nötig. MoboXtherm liefert das X schon mit. Musst halt lediglich überprüfen, ob X11Forwarding im Raspberry bereits eingestellt ist. Beim Erstellen einer neuen Verbindung sagst du dann Mobo, dass X11Forwarding vom Server(RaspberryPi) nutzen soll. Gab hier im Forum auch schon eine Erklärung mit Xming + Putty, wo auch Mobo erwähnt wurde.

    Du kannst durchaus auch einzelne Programme nur übertragen. Das ganze ist unter Windows aber immer so ein bisschen gefrickelt beim ersten Mal.

    Hier mal ein Screenshoot, wie es aussehen kann auf einem Windows Desktop Rechner. Nutze aber ansonsten lieber direkt mein Debian (Linux Mint LMDE 2). Dort kann ich über das Terminal direkt alles aufbauen und es verschmilzt förmlich mit der eigentlichen Desktopumgebung.


    Edit: Der Button liegt, auf dem Desktop des Raspberrys (siehe test2). Man kann sich das ganze aber auch so einrichten, dass du von deinem eigentlichen Desktop einen Shortkey hast, der das ganze dann ausführt. Denn Programme können auch ohne die Desktopoberfläche gestartet werden.

    P.S.: Die X Oberfläche über MoboXterm oder Xming(Putty) ist nicht identisch mit deinem Display am Raspberry. Auflösungen können, dadurch auch größer sein als auf deinem HDMI Panel.

  • Moment, moment, ich glaube, ich hinke jetzt noch etwas hinterher...

    das mit dem Compiler auf dem Mini-Zielrechner ist jetzt eine ganz neue Idee - damit hatte ich bisher noch nicht zu tun...
    dann brauche ich ja den Windows-PC überhaupt nicht!
    also auch kein ssh oder puTTY zwischen Win PC und RasPi -

    vergessen wir mal einfach meine Frage vom Anfang!

    Auf dem Raspi gibt es ja doch eine grafische Oberfläche, ähnlich wie die Windows-GUI -
    wenn die 10" Screens zum Entwickeln zu klein sind, schließe ich dann einfach zum Entwickeln auf dem RasPi einen größeren HDMI-Bildschirm an, und stecke später um.

    Dann brauche ich nur eine einfache IDE mit Programm-Editor auf dem RasPi, die alles enthält, was ich zum Kompilieren brauche, samt makefile Einstellung (was ja konstant ist).
    Und das ganze ist dann das erwähnte geany, das als Icon auf der Raspi-GUI liegt - - - korrekt?

    Den Umweg über X11 forward etc. spare ich mir dann gern!

    Einmal editiert, zuletzt von HaWe (15. April 2015 um 17:48)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!