Entwicklungsumgebung für C

grünschnabel

Well-Known Member
Hallo,

ich habe die Suchfunktion schon benutzt, allerdings ohne Erfolg.

Bis jetzt habe ich nur auf Windows mit Visual Studio programmiert und möchte jetzt auf OpenBSD weitermachen.
Für den Anfang wird sich das Ganze wohl auf dem Anfänger-Niveau bewegen, weshalb mir eine eher schlanke, einsteiger- bzw. benutzerfreundliche und gut dokumentierte IDE sehr helfen würde.

Was würdet Ihr mir empfehlen? Wäre es am Anfang vielleicht sogar besser wenn ich "nur" einen Editor benutze?

MfG
grünschnabel
 
Für den Anfang ist ein einfacher Editor ganz gut.

foo.c mit main() Funktion anlegen und mit make foo compilieren. ./foo ausführen. Fertig ist das erste Hello World.

Danach musst Du Dich dann früher oder später für einen Editor eine Religion entscheiden.
 
Beim letzten Punkt werde ich mit meiner eher agnostischen Einstellung wohl gewisse Schwierigkeiten haben^^
Welche Religionen gibt es denn? :D Wer hat den stärkeren Gott?

Danke^^
 
Beim letzten Punkt werde ich mit meiner eher agnostischen Einstellung wohl gewisse Schwierigkeiten haben^^
Welche Religionen gibt es denn? :D Wer hat den stärkeren Gott?
Genau 2, vim und emacs! :rolleyes: Unter X gibt es natürlich einiges mehr aber da kenne ich mich nicht aus.

Ich benutze von Win7 aus Notepad++ mit NppFTP und editiere damit die Dateien auf dem Server direkt. Dann ein make und/oder make run mit Putty. That's it.

Bei vim dreht sich bei mir alles im Kopf herum, hat vielleicht mit dem IQ zu tun ;) Ich habe gerade ein wenig mit emacs herumgespielt. Ist zwar gewöhnungsbedürftig aber bei weitem nicht so schlimm wie es oft dargestellt wird. Braucht vermutlich seine Zeit sich daran zu gewöhnen, bietet aber ansonsten alles was man sich nur denken kann und noch einiges mehr...
 
Es gibt einige GUI C IDEs.

Geany, CDT eclipse, kdevelop, anjuta, qtcreator usw.

Die meisten davon haben auch echte IDE features wie debugger, refactoring make support usw.

Du kannst, musst aber in keinem Fall nur auf der Konsole arbeiten.
 
Vi, vi, vi(m). The Editor of the Beast.

Der Trick beim Eingewöhnen ist tatsächlich hjkl zum Navigieren zu verwenden. Das geht erstaunlich schnell von der Hand und erst wenn die rechte Hand nicht mehr zwischen Pfeiltasten und alphanumerischem Teil hin und her wechselt läuft es wirklich rund.
 
Ich habe ja ein ähnliches Problem und habe folgendes festgestellt: Notepad++ ist ja ein komfortabler Multi-Tab/Multi-Lang Editor für Windows. Dafür gibt es die Plugins NppFTP (sftp) für direktes editieren auf dem Server und NppExec mit dem man andere Console Apllicationen steuern kann, also auch Putty. NppExec scheint ein wenig kompliziert zu initialisieren zu sein, ist aber wohl machbar. Leider habe ich im Moment keine Zeit um das auszutesten, aber das scheint eine wirkliche Alternative zu sein wenn man von Win aus direkt auf dem Server arbeiten will. Sollte das schon jemand gemacht haben wäre ich für Hinweise dankbar.

Peter
 
Wenn Du für OpenBSD programmieren möchtest, noch dazu in der BSD/Unix-nativen Sprache C, dann guck Dir an wie es die Leute machen, die es dauernd machen.

Du solltest keine "Anfänger-IDE" verwenden, sondern investiere die Zeit in der Du lernst auch dazu, die Methoden zu lernen, wie andere Programme schreiben.

Man lernt nicht fliegen, indem man erstmal sicher auf dem Boden bleibt.
 
  • Like
Reaktionen: Chu
Ich habe mir das Ganze jetzt einmal näher angeschaut und das geht mit Notepad++ einwandfrei.

(1) Putty für automatsches Login auf dem Server einrichten,
(2) Der Pfad zur Putty muss in den Systemvariablen sein.
(3) Notepad++ mit installiertem NppFTP und NppExec starten.
(4) NppFTP zum Server öffnen und ins Arbeitsverzeichnis wechseln.
(5) NppExec Console öffenen.
(6) In der Console "plink <session>" eingeben + Enter
(7) cd <workdir>, make etc pp
Und das war's schon. Was nicht funktioniert ist Ctrl+d und möglicherweise andere Shortcuts. Man muss dann eben exit eingeben.

Man kann das auch noch weiter automatisieren, aber das reicht eigentlich so da man ja die Sessions mit den geöffneten Dateinen speichern kann was mit der letzten automatische geschieht..

Peter
 
Natürlich sollte man zunächst mal wissen was man überhaupt macht und sich entsprechend mit der Sprache und den Gegebenheiten vertraut machen. Aber warum immer so gegen IDEs geschossen wird ist mir nicht ganz klar. Eine gute IDEs kann man so parametrieren, dass sie den gewünschten Codingstyle erfüllen. Und warum sollte ich mich dann mit Texteditoren und Vertippern quälen wenn mir eine IDE so viel Arbeit abnehmen kann?

edit: Um dem Post noch etwas Sinn zu geben: Ich persönlich verwende QtCreator, was ich für eine gute IDE halte die mir viel Arbeit abnimmt. Jedoch arbeite ich aktuell auch hauptsächlich mit Qt-Code. Reine C-Projekte kann man darin zwar auch umsetzen, aber ob es da so ideal ist kann ich nicht sagen. Ich nutze es auch für reine C-Projekte, jedoch hauptsächlich da mir die IDE schon vertraut ist. Hätte ich damit noch keine Berührung gehabt wäre es mir vermutlich zu fett und zu sehr auf Qt ausgerichtet ;)
 
Ich sehe das vollkommen undogmatisch. Der Punkt ist m.E. die Breite des Einsatzspektrums. Wenn der relativ begrenzt ist, z.B. auf bestimmte GUIs, Sprachen o.Ä., spricht vieles für eine IDE. Etwas anderes ist es wenn man Dinge etwas ausserhalb des mainstreams machen will, dann spielen einfachere Methoden ihre Stärke aus. Manches hängt auch von persönlichen Randbedingungen ab. Für einen 10-Finger Blindtipper stellt sich manches anders dar als für einen 6-Finger Hacker wie mich. Und individuelle visuelle Wahrnehmung und schlichte Gewöhnung spielen auch eine Rolle. Persönliche Präferenzen eben über die man nicht streiten kann (bzw. sollte).
Und warum sollte ich mich dann mit Texteditoren und Vertippern quälen wenn mir eine IDE so viel Arbeit abnehmen kann?
Das diszipliniert ungemein was m.E. von Vorteil ist, YMMV. Und das eigentlich codieren macht ja nur einen Teil der Arbeit aus, und nicht unbedingt den aufwendigsten.

Mit den IDEs ist es ähnlich wie mit Betriebssystemen. Man kann mit windows/mac durchaus zufrieden sein wenn es paßt und man sich damit auskennt. Aber steige mal auf FreeBSD um, dann stellt sich einiges anders dar.:confused: Wirklich universell einsetzbar sind.m.E nur VIM und emacs. Aber die Lernkurve ist da auch nicht ohne...
 
Zuletzt bearbeitet:
Ehrlich gesagt ist mit alleine schon die automatische Vervollständigung von Variablen- oder Methodennamen eine unheimliche Hilfe die mir sehr viel Zeit spart. :) Aber wie du sagtest, das sind sehr subjektive Dinge.
 
Ehrlich gesagt ist mit alleine schon die automatische Vervollständigung von Variablen- oder Methodennamen eine unheimliche Hilfe die mir sehr viel Zeit spart. :) Aber wie du sagtest, das sind sehr subjektive Dinge.
Die automatische Vervollständigung ist eine wertvolle Hilfe, die ich nicht missen möchte. Niemand hat alle Methoden im Kopf, selbst einfachere IDE's wie Qdevelop haben dieses für mich unverzichtbares Feature. Nun alles ist irgendwie subjektiv, jeder darf selbst herausfinden, was Ihm vorteilhaft erscheint oder eben nicht. Der Qt-Creator ist ja mittlerweile richtig gut, aber er ist mir auch zu fett geworden, deshalb benutze ich für meine meist kleineren Projekte und meine Datenbankprogrammierung mit Qt immer noch Qdevelop.
 
Wenn Ihr meint, dass moderne Texteditoren keine Autovervollständigung haben und nicht einrücken können, dann irrt Ihr Euch ganz gewaltig.

Eine IDE hat nur ein Merkmal, was sie von der Arbeit mit Editoren unterscheidet. Sie integriert Werkzeuge und fasst ein Projekt zusammen zu einem Bündel. Mich stört das letztere. Das Problem ist nämlich, dass eine IDE meistens Projektdateien erzeugt, womit die freie Wahl der Werkzeuge eines Team-Mitglieds verhindert wird. Man sollte den Experten seine Werkzeugpalette selbst überlassen und ihm nicht irgendwelche hinderlichen Geschichten ans Bein binden.

Das korrekte Vorgehen ist, dass man ein Projekt low-level-mäßig verwaltet und eine IDE dann für die eigene private Arbeitsweise verwendet. Dagegen ist nichts einzuwenden, denn es gibt halt Entwickler, die eine IDE toll finden. Das soll auch dann so sein. Aber primär nimmt man stets den kleinsten gemeinsamen Nenner. Der Vorteil ist, dass man immer an einem Projekt weiter arbeiten kann, auch wenn die IDE gerade nicht verfügbar ist.

Ich habe schon mal die Erfahrung gemacht. Vor langer Zeit an der Uni hat jeder in meinem Team an einem Projekt mit harter Deadline gearbeitet und alle Projektrechner wurden mit einem Wurm infiziert. Ich war der einzige, der etwas unixoides eingesetzt hat und keine IDE gebraucht hat, die sie als Standard genommen haben. Natürlich gucken alle auf einen runter, aber Fakt ist ich habe mich in den 2 Wochen, wo sie die Umgebungen und Projekte restauriert haben einfach in den allgemeinen Pool für Studenten an eine Sun gesetzt und weiter gearbeitet als ob nichts gewesen wäre, während das ganze Team nichts gemacht hat als Rechner neu zu installieren und abzusichern, dass der Wurm von jedem Share runter ist. So richtet man seinen Arbeitsplatz ein ... und zwar, dass man nicht von Werkzeugen abhängig ist, die man nicht sofort wieder besorgen kann, wenn etwas in die Hose geht.

Kurz zusammengefasst: ich habe nichts gegen IDEs, wenn Ihr sie nutzt. Leider ist es oft so, dass die Leute, die unerfahren mit Texteditoren sind auch gleichzeitig unerfahren mit Projektverwaltung sind und dann den anderen eine IDE implizit aufzwingen. Deswegen kann man im Endeffekt eher gegen eine IDE sein, weil man eben Kopfschmerzen von solchen Projekten bekommt.
 
Mir wurde vor einiger Zeit Netbeans als IDE für C/C++ empfohlen. Zunächst habe ich mich gefragt ob eine Java IDE wirklich das richtige Werkzeug für Embedded C/C++ Entwicklung ist. Mittlerweile bin ich aber großer Fan von Netbeans geworden, speziell wegen diesen Features:

* Ist unabhängig von Compiler und Tools, d.h. funktioniert -- wie die meisten andern IDEs auch -- sehr gut mit CLI Build Tools (CMake, Make, ...)
* Ausgezeichnete Code-Navigation, die auch in sehr großen C++ Projekten schnell und zuverlässig funktioniert -- gefühlt besser als bei Eclipse und KDevelop. Tatsächlich ist dieser Aspekt für mich das "Killer-Feature".
* Gute und stabile Integration von GDB und Versionsverwaltung (CVS, Hg, ...).
* Remote Build Support. Diesen Aspekt habe ich allerdings bisher nur kurz ausprobiert, kann daher nichts zur Praxistauglichkeit sagen.
 
Danke für die vielen Posts.

Für den Anfang werde ich wohl mit einem Editor arbeiten. Es ist vielleicht besser wenn ich das Ganze von Grund auf lerne und so irgendwann weiß was ich da überhaupt mache :-D

Was sind denn die großen Unterschiede zwischen Vim und Emacs?
Ich habe mich bei Wikipedia informiert bzw. gewisse Teile des Eintrages durchgelesen und es sieht so aus als könnte man bei Emacs so mithilfe von Erweiterungen ziemlich alles in einem haben während Vim vor allem in seiner Aufgabe als Editor glänzt. Ist Emacs quasi mehr als ein Editor?

MfG und danke nochmal^^
 
Emacs ist extrem fett und praktisch ein eigenes Betriebssystem (etwas übertrieben gesprochen)
 
Hallo lieber Grünschnabel,
nach deiner Eingangsfrage würde ich folgendes empfehlen:

o Bleibe bei dem Grundsystem von OpenBSD, da ist alles drin was du für den Anfang brauchst (warum also zusätzlich installieren?)
o $EDITOR ist Geschmack (meine Wahl ist ed(1) zB)

Ich empfinde es am Anfang gut auf das Grundsystem zuzugreifen, da man dadurch sein System kennenlernt und die Werkzeugkiste der Tools, die BSD mitbringt, gut nutzen und verknüpfen lernt.
Vorteil ist, du bist immer fit im logischen Benutzen des Systems. Auch wenn es um andere Dinge geht.
$EDITOR plus Tools fordern und fördern dies.

Lieben Gruß
Chu
 
Emacs vs Vim ist aber ein anderer Flamewar als IDE vs Texteditor+Toolchain. ;)
Yep, so isss! Es bleibt einem nichts übrig als mit allem mal ein weng runszuspielen, - homo ludens, der spielende Mensch! :) Für mich ist VIM ungenießbar und emacs evlt. längerfristig eine Alternative. Für andere ist es genau umgekehrt. Für heutige Verhältnisse ist emacs auch nicht mehr etrem fett, ist halt eine Erierlegendewollmichsau die einiges an Einarbeitung erfordert dafür aber extrem flexibel ist. Wird im Unterschied zu den üblichen IDEs ausschließlich mit der Tastatur bedient was gewöhnungsbedürftig ist. aber auch Vorzüge hat (s.a.http://www.bsdforen.de/threads/emacs-weitgehend-ohne-x11.31064/).

Was den Editor betrifft kommt es halt darauf an ob du einen Server von Win/Mac aus ansprichst oder ein BSD mit Desktop verwendest, KDE oder was auch immer, Da gibt es überall einige Alternativen und es hilft nur da überall mal reinzuschnuppern.

Notepad++/Win verfügt übrigens auch über Autovervollständigung was ich bislang aber nicht benutzt habe.

Peter

PS: Ich bin heilfroh dass mir FreeBSD für die Arbeit am System ee bietet und ich für diese Zwecke nicht auf archaische *nix Editoren wie vi angewiesen bin.
 
Zuletzt bearbeitet:
Ich möchte meinen Beitrag noch ergänzen. Unter FreeBSD läuft ja Qdevelop nicht, es stürzt öfters ab. Daher benutze ich natürlich den Qt-Creator. Aber auch nur für etwas größere Projekte. Wenn ich ein kleines c Programm für kleinere Aufgaben code, dann genügt mir gedit oder geany als einfacher Editor. Natürlich könnte ich da auch den Emacs benutzen, würde dann aber mit Kanonen auf Spatzen schießen .. Ich kauf mir ja auch keinen 30 Tonner, um damit einen Maggiwürfel zu transportieren. Ich finde die Vielfalt unterschiedlicher Editoren und IDE's eine Bereicherung. Es gibt halt keine Monokultur, das wäre auch langweilig. Und es ist für jeden was dabei. Empfehlungen sind immer eine Gratwanderung, denn letztendlich sollte jeder selber herausfinden, welches Werkzeug zu Ihm paßt. Nun habe ich ja die Freiheit der Wahl und bin nicht in einem Team eingebunden. Sicherlich wissen die Profis und Berufsprogrammierer schon genau, was Sie brauchen. Verallgemeinern darf man trotzdem nicht. Aber wir Menschenkinder sind nun Mal Herdentiere.
 
Zurück
Oben