Entwicklungsumgebung für C.

10

Suchen Sie nach Ideen zum Einrichten einer praktischen und produktiven Entwicklungsumgebung für die C-Entwicklung. Ich fand die C-Bearbeitung mit Vim sehr hilfreich, möchte aber eine breitere Auswahl an Vorschlägen erhalten.

zvolkov
quelle
@txwikinger Einverstanden, ich wollte einfach nicht der erste der CW-Polizei hier sein :). Oder derjenige, der das [subjektive] Tag erstellt, das einen schmerzhaften Tod
erleiden muss
Es gibt dort bereits Community-Wikis. Also keine Entschuldigung :) Und ich habe das subjektive Tag erstellt, damit alle deine Sorgen weg sind. Bitte überprüfen Sie das Community-Wiki jetzt :)
txwikinger
@txwikinger Es ist jetzt tatsächlich entmutigt , also habe ich es aus allen Posts entfernt, die es hatten
Michael Mrozek

Antworten:

11
  • Emacs / Vim / Eclipse / ... - Ich persönlich bin ein Emacs-Benutzer. Wenn Sie feststellen, dass die Steuersequenzen Ihren kleinen Finger ermüden, schalten Sie ihn einfach im Viper-Modus ein. Emacs ist so gut in Unix integriert, dass es sehr einfach ist, alles von einem Ort aus zu steuern. Vim macht auch hier gute Arbeit, aber ich finde, dass Elisp eine viel mächtigere Erweiterungssprache ist als Vim Script. Man könnte stundenlang über alle Möglichkeiten sprechen, Emacs für die C-Entwicklung einzurichten. Der Flymake-Modus wurde erwähnt und ist ein guter Anfang. Ich bin mit Eclipse nicht vertraut, finde nicht, dass auf meinem Bildschirm genügend Platz für Code vorhanden ist, und ich mag auch nicht, wie aufgebläht es ist (Vim-Benutzer sagen dasselbe über Emacs). Ich bin auch aus rein ästhetischen Gründen unfair gegen alles voreingenommen, was in Java geschrieben wurde.

  • Ctags - Markiert Ihre C-Funktionen (oder viele andere Sprachen) so, dass Vim oder Emacs oder was auch immer ein wenig Hypertext in Ihren Dateien verknüpfen können. Angenommen, Sie wandern herum und sehen eine Funktion, und Sie kratzen sich am Kopf und sagen: "Was macht diese wieder? Die Benennung ist etwas vage." Plink-Plank-Plunk, Sie können direkt zu seiner Definition zappen.

  • Cmake / Gnu-Autotools - Make ist großartig, aber irgendwann müssen Sie die Dinge ein wenig abstrahieren, damit Ihr Projekt auf allen Arten von Systemen aufbauen kann, auf die Sie nicht testen können. Wenn Sie nur Leute brauchen, um Ihren Code auf einem * nix zu erstellen, ist Autotools großartig, aber Sie sollten sich trotzdem mit Cmake vertraut machen. Das Cmake-Team erstellt Code in jeder erdenklichen Konfiguration und stellt sicher, dass Sie keine Kopfschmerzen haben. Wenn Sie möchten, dass Ihr Projekt leicht abgeholt werden kann, kaufen Sie andere, ist eines dieser Tools von entscheidender Bedeutung.

  • Git / Mercurial / Subversion / ... - Sie könnten Monate damit verbringen, nach Versionskontrollsoftware zu suchen, aber Sie sollten sich wahrscheinlich einfach für Git entscheiden. Es ist solide, es ist verteilt, der @ $! #% & Linux-Kernel wird damit verfolgt. Wenn es für Linus gut genug ist, muss es für dich gut genug sein. Ich höre auch gute Dinge über Mercurial, anscheinend benutzt G ** gle sie, also ist es wahrscheinlich nicht schlecht. Einige Leute scheinen Subversion und CVS zu mögen und so weiter. Ich mag sie nicht, weil sie monolithisch sind, was für mich sehr unpraktisch und einschränkend ist.

  • Stumpwm / wmii / XMonad / ... - Irgendwann werden Sie feststellen, dass alles, was Sie tun können, um Ihre Arbeit am Laufen zu halten, Ihre Leistung erheblich verbessern wird. Eine der besten Möglichkeiten, um zu verhindern, dass Ihr Gehirn den Kontext zerstört, ist der Wechsel zu Kachel-Fenstermanagern mit KEYBOARD-ANTRIEB. Ich bin ein persönlicher Fan von StumpWM, den Emacs von Fenstermanagern. Vollständig in einem anpassbaren Common Lisp-Prozess implementiert, kann alles, was Sie wiederholt tun, in Funktionen verbannt und an Befehle gebunden werden. Tolles Zeug. Ich weiß nicht viel über die anderen, aber vielleicht ist eine weitere Ausarbeitung besser einem anderen Thread überlassen. BENUTZEN SIE KEYBOARD, WIE MÖGLICH.

  • GDB - Ich kenne andere Debugger nicht, aber dies scheint der De-facto-Standard zu sein.

  • Valgrind - Ich kenne nichts anderes, was das so gut macht. Valgrind ist entscheidend für all die lästigen Profiling- / Speicherleck-Jagden, die Sie fortsetzen möchten. Ohne Valgrind kann man mit malloc / calloc keinen Code schreiben.

Eli Frey
quelle
Ich würde Linux Performance Counter ( perf.wiki.kernel.org/index.php/Main_Page ) und / oder Oprofile ( oprofile.sourceforge.net/news ) zu dieser Liste hinzufügen .
Mark Probst
Ich habe es gerade zu einem Community-Wiki gemacht, sodass Sie diese dort hinzufügen können, wie Sie es für angemessen halten. Performance Counter scheint nur Linux zu sein? Ich werde versuchen, dies zu bestätigen / abzulehnen, aber wenn ja, sollte dies zumindest in seinem Vorschlag vermerkt werden.
Eli Frey
2

Ich habe eine Weile an Vim festgehalten. Es lohnt sich, die VIM-Grundlagen zu kennen, da Sie immer irgendwo eine UNIX-Box finden, die nur diese enthält, aber ich habe Emacs ausprobiert und nicht zurückgeschaut. Eclipse ist eine "moderne" Alternative, ich habe alle drei auf meinem System!

Chris Huang-Leaver
quelle
2

Es ist eine sehr persönliche Präferenz, daher glaube ich nicht, dass ich viel mehr tun kann, als Ihnen zu sagen, was ich benutze. Ich habe Emacs mit dem Flymake-Modus eingerichtet , der die Datei, an der Sie arbeiten, regelmäßig kompiliert und die Compiler-Ausgabe analysiert, um herauszufinden, welche Fehler Sie gemacht haben. Es unterstützt die Fehler / Warnungen im Puffer und zeigt die zugehörige Compiler-Fehlermeldung an

Michael Mrozek
quelle
2

Wenn Sie C-Entwicklung unter Unix / Linux durchführen, müssen Sie unbedingt Cscope verwenden, wenn das Projekt eine signifikante Größe hat.

Cscope ist ein Entwicklertool zum Durchsuchen des Quellcodes - springen Sie zur Funktionsdefinition foobar, suchen Sie alle Stellen, an denen auf die Variable fooverwiesen wird, suchen Sie alle Dateien, einschließlich bar.h, ändern Sie alle Vorkommen von barin bazusw.

Außerdem haben Sie Vim in Ihrem Beitrag erwähnt ... hier ist ein Tutorial zur gemeinsamen Verwendung von Vim & Cscope.

Dan
quelle
1

Mein persönlicher Favorit ist exVim . Es hat viele Vim-Plugins, was die Verwendung mit einer großen Codebasis sehr einfach macht. Ich brauche ca. 1 Tag, um die Funktionen zu lernen, aber es wird sich lohnen.

Hemant
quelle
1

Ich bearbeite C mit Vim in der Konsole. Ich verwende Makefiles und habe eine Reihe von Compilern, mit denen ich meinen Code testen kann, darunter gcc, clang (LLVM) und icc. Andere Dinge, die ich als Teil meiner Entwicklungsumgebung betrachte: die Verwendung von grep, Debuggern und Valgrind. Eine Skriptsprache für kompliziertere Builds. Git zur Versionskontrolle.

Meiner Meinung nach ist es wichtiger als das, was Sie zum Bearbeiten des Codes verwenden, wie Sie Ihren Code strukturieren. Wie man das auslegt, ist wahrscheinlich eine Frage für Stack Overflow, aber wie Sie gefragt haben, habe ich oft ein separates Verzeichnis für Objektcode, das nicht für die Verteilung bestimmt ist, und einen anderen Ordner für die resultierenden Binärdateien (y | ies). Ich habe einen Testordner, der mehr C-Dateien enthält, die den gesamten generischen Code verwenden, den ich schreibe, und diese, die ich zusammen mit der endgültigen Projektdatei valgrind.

user119
quelle
1

Ich benutze Kate (Text) gcc / avr-gcc und mache mit Git als VC. Ich mache hauptsächlich eingebettete Sachen in C und Computerseite in Python.

Ketil
quelle
1

Sie können Motor IDE ausprobieren . Es basiert auf Flüchen, so dass Sie sich wie zu Hause fühlen sollten (tm).) Es ist auch ein bisschen traurig, weil es seit 5 Jahren nicht mehr gewartet wird, sodass möglicherweise etwas kaputt geht. Obwohl immer noch - ich glaube, es ist einen Versuch wert.

Eimantas
quelle
1

Ich benutze gedit mit eingebettetem Terminal.

Silviu Bogan
quelle