Frage

Ich möchte meinen Programmierhorizont auf Linux erweitern.Ein gutes, zuverlässiges Basis-Toolset ist wichtig, und was ist einfacher als eine IDE?

Ich konnte diese SO-Themen finden:

Ich suche keinen Leicht IDE.Wenn eine IDE ihr Geld wert ist, werde ich dafür bezahlen, sie muss also nicht kostenlos sein.

Meine Frage also:

Welche gute C++-Programmier-IDE gibt es für Linux?

Die Mindestanforderungen sind ziemlich normal:Syntaxhervorhebung, Code-Vervollständigung (wie Intelligenz oder sein Eclipse -Gegenstück) und integriertes Debugging (z. B. grundlegende Haltepunkte).

Ich habe selbst danach gesucht, aber es gibt so viele, dass es fast unmöglich ist, die guten von den schlechten manuell zu trennen, insbesondere für jemanden wie mich, der wenig Erfahrung in der C++-Codierung unter Linux hat.ich weiß, dass Eclipse unterstützt C++, und ich mag diese IDE für Java wirklich, aber ist sie gut für C++ und gibt es etwas Besseres?

Der zweite Beitrag enthält tatsächlich einige gute Vorschläge, aber was mir fehlt, ist, was genau die vorgeschlagene IDE so gut für den Benutzer macht, was sind ihre (Nach-)Vorteile?

Vielleicht sollte meine Frage daher lauten:

Welche IDE schlagen Sie vor (aufgrund Ihrer Erfahrungen) und warum?

War es hilfreich?

Lösung

Anfänglich:Verwirrung

Als ich diese Antwort ursprünglich schrieb, war ich kürzlich von Visual Studio (mit jahrelanger Erfahrung) auf Linux umgestiegen und habe zunächst versucht, eine vernünftige IDE zu finden.Das war damals unmöglich:Es gab keine gute IDE.

Offenbarung:UNIX ist eine IDE. Alles davon.1

Und dann wurde mir klar, dass die IDE in Linux die Befehlszeile mit ihren Tools ist:

  • Zuerst richten Sie Ihre Shell ein
  • und Ihr Herausgeber;Wählen Sie Ihr Gift – beides ist auf dem neuesten Stand der Technik:

Abhängig von Ihren Anforderungen müssen Sie dann mehrere Plugins installieren und konfigurieren, damit der Editor gut funktioniert (das ist der nervigste Teil).Beispielsweise werden die meisten Programmierer auf Vim davon profitieren Du vervollständigst mich Plugin für intelligente Autovervollständigung.

Sobald dies erledigt ist, ist die Shell Ihre Befehlsschnittstelle für die Interaktion mit den verschiedenen Tools – Debuggern (gdb), Profilern (gprof, valgrind) usw.Sie richten Ihre Projekt-/Build-Umgebung mit ein Machen, CMake, SnakeMake oder eine der verschiedenen Alternativen.Und Sie verwalten Ihren Code mit einem Versionskontrollsystem (die meisten Leute verwenden). Git).Sie verwenden auch tmux (früher auch Bildschirm), um Ihre Terminalsitzung zu multiplexen (= mehrere Fenster/Registerkarten/Panels zu denken) und beizubehalten.

Der Punkt ist, dass dies alles dank der Shell und einiger Konventionen zum Schreiben von Tools möglich ist miteinander integrieren.Und so Die Linux-Shell ist eine wirklich integrierte Entwicklungsumgebung, völlig auf Augenhöhe mit anderen modernen IDEs.(Das bedeutet nicht, dass einzelne IDEs nicht über Funktionen verfügen, die in der Befehlszeile möglicherweise fehlen, aber das Gegenteil gilt auch.)

Jedem das Seine

Ich kann gar nicht genug betonen, wie gut der oben genannte Arbeitsablauf funktioniert, wenn man sich erst einmal daran gewöhnt hat.Aber manche Leute bevorzugen einfach grafische Editoren, und in den Jahren, seit diese Antwort ursprünglich geschrieben wurde, hat Linux eine Reihe hervorragender grafischer IDEs für mehrere verschiedene Programmiersprachen hinzugewonnen (aber meines Wissens nicht für C++).Probieren Sie sie aus, auch wenn Sie sie – wie ich – am Ende nicht verwenden.Hier ist nur eine kleine und voreingenommene Auswahl:

  • Für die Python-Entwicklung gibt es PyCharm
  • Für R gibt es RStudio
  • Für JavaScript und TypeScript gibt es Visual Studio-Code (was auch ein guter Allround-Editor ist)
  • Und schließlich lieben viele Menschen das Erhabener Texteditor für die allgemeine Codebearbeitung.

Bedenken Sie, dass diese Liste bei weitem nicht vollständig ist.


1 Ich habe diesen Titel aus dem Kommentar von dsm geklaut.

2 Ich habe hier immer von Vim gesprochen.Und während reines Vim immer noch mehr als leistungsfähig ist, ist Neovim ein vielversprechender Neustart und hat ein paar alte Fehler modernisiert.

Andere Tipps

Mein persönlicher Favorit ist das CodeLite 2.x IDE.

sehen: http://www.codelite.org

Die Entscheidung, CodeLite zu verwenden, basierte auf einer Recherche bezüglich der folgenden C++-IDE für Linux:

  • Eclipse Galileo mit CDT-Plugin
  • NetBeans 6.7 (das auch die Basis für die SunStudio-IDE ist)
  • KDevelop4
  • CodeBlocks 8.02
  • CodeLite 2.x

Schließlich habe ich mich für die Verwendung entschieden CodeLite 2.x.

Nachfolgend habe ich einige Vor- und Nachteile der genannten C++-IDEs aufgelistet.Bitte beachten Sie, dass dies ausschließlich meine persönliche Meinung widerspiegelt!

BEARBEITEN:Schade, dass SOF keine Tabellen unterstützt, also muss ich in Absätzen schreiben ...

Eclipse Galileo mit CDT-Plugin

Vorteile:

  • angemessen schnell
  • Unterstützt auch Java, Perl (mit E.P.I.C-Plugin)
  • häufig verwendet und gut gepflegt
  • auch für andere Betriebssystemvarianten verfügbar (Windows, MacOS, Solaris, AIX(?))

Nachteile:

  • Die Benutzeroberfläche ist sehr verwirrend und etwas inkonsistent – ​​überhaupt nicht sehr intuitiv
  • schweres Gewicht
  • Unterstützt nur CVS (AFAIK)

NetBeans 6.7 (Beachten Sie, dass dies auch die Basis für die SunStudio-IDE ist)

Vorteile:

  • Eine der intuitivsten GUIs, die ich je gesehen habe
  • Unterstützt auch Java, Python, Ruby
  • integriert CVS, SVN, Mercurial
  • häufig verwendet und gut gepflegt
  • auch für andere Betriebssystemvarianten verfügbar (Windows, MacOS, Solaris)

Nachteile:

  • extrem langsam
  • schweres Gewicht
  • verwendet Leerzeichen zum Einrücken, was bei meiner Arbeit nicht der Regel entspricht.Ich bin mir sicher, dass dies konfigurierbar ist, aber ich konnte nicht herausfinden, wie das geht

KDevelop4 (Notiz:Ich habe nicht viel damit getestet)

Vorteile:

  • Wird häufig unter Linux verwendet
  • integriert CVS, SVN, Mercurial

Nachteile:

  • Die GUI sieht etwas altmodisch aus
  • schweres Gewicht
  • sehr spezifisch für die KDE-Umgebung

CodeBlocks 8.02 (Notiz:Ich habe nicht viel damit getestet)

Vorteile:

  • angemessen schnell

Nachteile:

  • die GUI sieht etwas altmodisch aus (obwohl sie einen schönen Startbildschirm hat)
  • Die Schriftarten im Editor sind sehr klein
  • einige Symbole (z.B.die Debugger-bezogenen Symbole (Starten/Schritte) sind sehr klein
  • Keine Integration der Quellcodeverwaltung

CodeLite 2.x (Notiz:das ist mein persönlicher Favorit)

Vorteile:

  • die beste, modernste und intuitivste GUI, die ich unter Linux gesehen habe
  • Leicht
  • angemessen schnell
  • integriert SVN
  • auch für andere Betriebssystemvarianten verfügbar (Windows, MacOS, Solaris(?))

Nachteile:

  • keine CVS-Integration (das ist wichtig für mich, weil ich es bei der Arbeit verwenden muss)
  • keine Unterstützung für Java, Perl, Python (wäre schön zu haben)
  1. Code::Blöcke
  2. Eclipse CDT

Bald werden Sie feststellen, dass IDEs nicht ausreichen, und Sie müssen sich ohnehin mit der GCC-Toolchain vertraut machen (was nicht schwer ist, zumindest die Grundfunktionen zu erlernen).Aber meiner Meinung nach schadet es nicht, den Übergangsschmerz mit den IDEs zu reduzieren.

Eine kurze Antwort, nur um etwas mehr Wissen zu diesem Thema hinzuzufügen:
Sie müssen unbedingt vorbeischauen NetBeans.Netbeans 6.7 verfügt über die folgenden Funktionen:

  • C/C++-Projekte und Vorlagen:Unterstützt die Syntax -Hervorhebung, automatische Code -Abschluss, automatische Eindrücke.
  • Es verfügt über einen C/C++-Debugger
  • Unterstützt Compiler -Konfigurationen, Konfigurationsmanager und Makefile -Unterstützung (mit einem Assistenten).
  • Es verfügt über ein Klassenfenster, ein Verwendungsfenster und ein Dateinavigationsfenster (oder Panel).
  • A Makro-Erweiterungsansicht, und auch Tooltips.
  • Unterstützung für QT-Entwicklung.

Ich denke, es ist ein perfekter (und weitaus besserer) Visual Studio-Ersatz und ein sehr gutes Werkzeug zum Erlernen von C/C++.

Viel Glück!

Zumindest für Qt-spezifische Projekte Qt-Ersteller (von Nokia/Trolltech/Digia) ist vielversprechend.

Könnten Sie bitte etwas näher erläutern, wie es für Sie war und was Sie ändern mussten?Vielleicht könnten Sie mich in die richtige Richtung weisen, indem Sie einige Links zu den von Ihnen verwendeten Informationen bereitstellen.

Meine erste Quelle waren eigentlich die Werkzeuge man Seiten.Schreib einfach

$ man toolname

auf der Befehlszeile ($ Hier ist ein Teil der Eingabeaufforderung, nicht die Eingabe).

Je nach Plattform sind sie recht gut geschrieben und auch im Internet zu finden.Im Fall von make, ich habe tatsächlich alles gelesen Dokumentation was ein paar Stunden gedauert hat.Eigentlich glaube ich nicht, dass dies in den meisten Fällen notwendig oder hilfreich ist, aber ich hatte bei meinen ersten Aufgaben unter Linux ein paar spezielle Anforderungen, die ein ausgefeiltes Makefile erforderten.Nachdem ich das Makefile geschrieben hatte, gab ich es einem erfahrenen Kollegen, der einige kleinere Optimierungen und Korrekturen vornahm.Danach wusste ich es ziemlich genau make.

Ich habe GVIM verwendet, weil ich dort einige (aber nicht viel) Erfahrung hatte. Über Emacs oder Alternativen kann ich überhaupt nichts sagen.Ich finde, dass es wirklich hilfreich ist, die Texte anderer Leute zu lesen. .gvimrc Konfigurationsdatei.Viele Leute stellen es ins Internet.Hier ist meins.

Versuchen Sie nicht, alle Binutils auf einmal zu beherrschen, es gibt zu viele Funktionen.Aber verschaffen Sie sich einen allgemeinen Überblick, damit Sie wissen, wo Sie suchen müssen, wenn Sie in Zukunft etwas benötigen.Du sollen, Kennen Sie jedoch alle wichtigen Parameter für g++ Und ld (das GCC-Linker-Tool, das automatisch aufgerufen wird, sofern es nicht ausdrücklich verhindert wird).

Ich bin auch neugierig: Gibt es beim Codieren Codevervollständigung und Syntaxhervorhebung?

Satzstellung markieren:Ja, und ein viel besseres als Visual Studio.Code-Vervollständigung:Ja-ish.Erstens muss ich zugeben, dass ich nicht einmal in Visual Studio die C++-Codevervollständigung verwendet habe, weil sie (im Vergleich zu VB und C#) nicht gut genug war.Ich benutze es jetzt nicht mehr oft, aber trotzdem, GVIM hat Unterstützung für native Codevervollständigung für C++.Kombiniert mit dem ctags Bibliothek und ein Plug-in-ähnliches Tagliste das ist fast eine IDE.

Was mich eigentlich zum Anfang brachte, war ein Artikel von Armin Ronacher.Schauen Sie sich vor dem Lesen des Textes die Screenshots am Ende an!

Müssen Sie zuerst kompilieren, bevor Sie (Syntax-)Fehler erhalten?

Ja.Aber das gilt auch für Visual Studio, nicht wahr (ich habe Whole Tomato noch nie verwendet)?Natürlich werden Ihnen durch die Syntaxhervorhebung nicht übereinstimmende Klammern angezeigt, aber das ist auch schon alles.

und wie debuggen Sie (denken Sie wiederum an Haltepunkte usw.)?

ich benutze gdb Dabei handelt es sich um ein Befehlszeilentool.Es gibt auch ein grafisches Frontend namens DDD. gdb ist ein modernes Debugging-Tool und kann alles, was Sie in einer IDE tun können.Das Einzige, was mich wirklich nervt, ist das Lesen eines Stack-Trace, weil die Zeilen nicht eingerückt oder formatiert sind und es daher wirklich schwierig ist, die Informationen zu scannen, wenn man viele Vorlagen verwendet (was ich tue).Aber diese überladen auch den Stack-Trace in IDEs.

Wie gesagt, ich hatte das „Vergnügen“, meine ersten Schritte in der Programmiersprache Java mit Windows Notepad und dem Befehlszeilen-Java-Compiler in der High School zu machen, und es war, ..Naja, ein Albtraum!auf jeden Fall, wenn ich es mit anderen Programmierkursen vergleichen könnte, die ich damals hatte und in denen wir gute IDEs hatten

Sie sollten nicht einmal versuchen, einen modernen Editor mit vollem Funktionsumfang wie Emacs oder GVIM mit Notepad zu vergleichen.Der Notizblock ist verziert TextBox Kontrolle, und das macht wirklich den Unterschied.Darüber hinaus ist die Arbeit an der Befehlszeile unter Linux und Windows eine ganz andere Erfahrung.Die Fenster cmd.exe ist schwer verkrüppelt.PowerShell ist viel besser.

/BEARBEITEN:Das sollte ich ausdrücklich erwähnen GVIM verfügt über eine Tab-Bearbeitung (wie beim Tabbed-Browsing, nicht Tabs vs. Leerzeichen)!Es hat ewig gedauert, bis ich sie gefunden habe, obwohl sie überhaupt nicht versteckt sind.Schreib einfach :tabe statt schlicht :e Wenn Sie eine Datei öffnen oder eine neue erstellen, erstellt GVIM eine neue Registerkarte.Der Wechsel zwischen den Registerkarten kann mit dem Cursor oder verschiedenen Tastenkombinationen (je nach Plattform) erfolgen.Der Schlüssel gt (Typ G, Dann T im Befehlsmodus) sollte überall funktionieren und springt zur nächsten Registerkarte oder Registerkarte Nr. N wenn eine Zahl angegeben wurde.Typ :help gt um mehr Hilfe zu bekommen.

Ich möchte die Antwort nicht wiederholen, aber ich denke, ich kann noch etwas hinzufügen.

Slickedit ist eine ausgezeichnete IDE.

Es unterstützt große Codebasen gut, ohne langsamer zu werden oder die ganze Zeit mit der Indizierung zu verbringen.(Dies ist ein Problem, das ich mit dem CDT von Eclipse hatte).Die Geschwindigkeit von Slickedit ist wahrscheinlich das Schönste daran.
Die Code-Vervollständigung funktioniert gut und es gibt zahlreiche Optionen für Dinge wie automatische Formatierung, Verschönerung und Refactoring.
Es verfügt über ein integriertes Debugging.
Es verfügt über Plug-in-Unterstützung und eine ziemlich aktive Community, die sie erstellt.
Theoretisch sollte man sich gut mit Leuten integrieren können, die mit den traditionellen Makefile-Sachen arbeiten, da man so ein Projekt direkt daraus erstellen kann, aber das funktionierte nicht so reibungslos, wie ich es mir gewünscht hätte, als ich es ausprobiert habe.
Neben Linux gibt es bei Bedarf auch Mac- und Windows-Versionen.

Als langjähriger UNIX-Typ verwende ich immer Emacs.Aber das erfordert eine ziemlich steile und lange Lernkurve, sodass ich nicht sicher bin, ob ich es Neulingen empfehlen kann.

Es gibt wirklich keine „gute“ IDE für Linux.Eclipse ist für C/C++ nicht sehr gut (CDT verbessert sich, ist aber noch nicht sehr nützlich).Den anderen fehlen alle Funktionen, die Sie suchen.

Es ist wirklich wichtig zu lernen, wie alle einzelnen Tools (gcc, make, gdb usw.) funktionieren.Nachdem Sie dies getan haben, werden Sie die Vorgehensweise von Visual Studio möglicherweise als sehr einschränkend empfinden.

Probieren Sie Netbeans aus. Es ist in Java geschrieben, sodass Sie unabhängig von Ihrem Betriebssystem über die gleiche Umgebung verfügen, und es unterstützt viel mehr als nur C++.

Ich werde nicht versuchen, Sie zu überzeugen, denn ich denke, IDEs können eine sehr persönliche Entscheidung sein.Für mich steigert es meine Produktivität, da es schnell ist, die Sprachen unterstützt, in denen ich programmiere, und über die Standardfunktionen verfügt, die man von einer IDE erwarten würde.

Nur eine kurze Antwort auf diese Frage ...

Es ist ein Monat her, seit ich VIM als mein Haupt -GUI -Tool für das Programmieren von C ++ unter Linux verwendet habe.Zuerst war die Lernkurve in der Tat etwas steil, aber nach einer Weile und mit den richtigen Optionen eingeschaltet und Skripte laufen Ich habe wirklich den Dreh raus!

Ich liebe die Art und Weise, wie Sie Vim an Ihre Bedürfnisse anpassen können.einfach hinzufügen/ändern Schlüsselzuordnungen Und Vim wird in eine hochproduktive 'IDE'.

Der Toolchain zum Erstellen und Kompilieren eines C ++ - Programms unter Linux ist ebenfalls sehr intuitiv.make und g++ sind Die Werkzeuge, die Sie verwenden werden.

Der Debugger ddd ist jedoch nicht wirklich so gut, aber vielleicht, weil ich nicht die Zeit hatte, es richtig zu meistern.

Also an jeden, der eine gute C ++ - IDE in Linux gesucht hat oder nach einer guten C ++ -Ide gesucht hat, genau wie ich, ist Ihre beste Wette mit den verfügbaren verfügbaren Tools in Linux selbst (VIM, G ++, DDD), und Sie sollten zumindest zumindest versuchen, sie zu verwenden sie, bevor sie nach Sohn suchen ...

Zu guter Letzt möchte ich mich wirklich bedanken Konrad Für seine Antwort hier hat es mir wirklich geholfen, meinen Weg in der Linux -Entwicklungsumgebung zu finden, danke!

ich bin auch nicht Schließen Sie diese Frage, damit die Leute immer noch reagieren oder sogar neue Vorschläge oder Ergänzungen zu den bereits wirklich netten Antworten hinzufügen können ...

Ich empfehle Ihnen zu lesen Die Kunst der UNIX-Programmierung.Es wird Sie dazu bringen, die Umgebung als Ihre IDE zu nutzen.

Die kürzere Antwort lautet:Wählen Sie den gewünschten „Editor“ aus und verwenden Sie dann die GDB-Konsole oder ein einfaches GDB-Frontend, um Ihre Anwendung zu debuggen.Die Debugger werden mit ausgefallenen IDEs wie Netbeans für C/C++ geliefert.Ich verwende Netbeans als meinen Editor und Insight und die GDB-Konsole als meinen Debugger.

Mit Insight haben Sie eine schöne Benutzeroberfläche und die volle Leistungsfähigkeit von GDB.

Sobald Sie sich an die GDB-Befehle gewöhnt haben, werden Sie sie lieben, da Sie Dinge tun können, die Sie mit einer GUI niemals tun könnten.Sie können es sogar verwenden Python als Ihre Skriptsprache, wenn Sie GDB 7 oder eine neuere Version verwenden.

Die meisten Leute hier schenkten den „Herausgebern“ der IDEs mehr Aufmerksamkeit.Wenn Sie jedoch ein großes Projekt in C/C++ entwickeln, könnten Sie leicht mehr als 70 % Ihrer Zeit mit den „Debuggern“ verbringen.Die Debugger der schicken IDEs sind mindestens 10 Jahre hinter Visual Studio zurück.Netbenas verfügt beispielsweise über sehr ähnliche Schnittstellen zu Visual Studio.Allerdings hat sein Debugger im Vergleich zu Visual Studio eine Reihe von Nachteilen.

  1. Selbst die Anzeige eines Arrays mit nur wenigen Hundert Elementen ist sehr langsam
  2. Keine Hervorhebung für geänderte Werte (Standardmäßig zeigt Visual Studio geänderte Werte in den Überwachungsfenstern in Rot an)
  3. Sehr eingeschränkte Fähigkeit, Erinnerungen anzuzeigen.
  4. Sie können den Quellcode nicht ändern und dann mit der Ausführung fortfahren.Wenn es lange dauert, bis ein Fehler auftritt, möchten Sie die Quelle ändern, die Änderungen live anwenden und Ihre Anwendung weiterhin ausführen.
  5. Sie können die auszuführende „nächste Anweisung“ nicht ändern.In Visual Studio können Sie „Nächste Anweisung festlegen“ verwenden, um die Ausführung Ihrer Anwendung zu ändern.Obwohl diese Funktion bei unsachgemäßer Verwendung zum Absturz Ihrer Anwendung führen kann, sparen Sie dadurch viel Zeit.Wenn Sie beispielsweise feststellen, dass der Status Ihrer Anwendung nicht korrekt ist, Sie aber nicht wissen, was die Probleme verursacht hat, möchten Sie möglicherweise einen bestimmten Bereich Ihres Quellcodes erneut ausführen, ohne Ihre Anwendung neu zu starten.
  6. Keine integrierte Unterstützung für STL wie Vektor, Liste, Deque und Karte usw.
  7. Keine Beobachtungspunkte.Sie benötigen diese Funktion, wenn Sie Ihre Anwendung genau dann stoppen müssen, wenn eine Variable geändert wird.Intel-basierte Computer verfügen über Hardware-Überwachungspunkte, sodass die Überwachungspunkte Ihr System nicht verlangsamen.Es kann viele Stunden dauern, einige schwer zu findende Fehler zu finden, ohne Überwachungspunkte zu verwenden.„Visual Studio“ nennt „watch pointer“ als „Data BreakPoint“.

Die Liste kann viel länger sein.

Die Nachteile der Netbeans oder anderer ähnlicher IDEs frustrierten mich so sehr, dass ich anfing, GDB selbst zu erlernen.Ich fand, dass GDB selbst sehr leistungsfähig ist.GDB hat nicht alle oben genannten „Nachteile“.Tatsächlich ist GDB sehr leistungsfähig und in vielerlei Hinsicht sogar besser als Visual Studio.Hier zeige ich Ihnen nur ein sehr einfaches Beispiel.

Sie haben beispielsweise ein Array wie:

struct IdAndValue
{
  int ID;
  int value;
};


IdAndValue IdAndValues[1000];

Wenn Ihre Anwendung stoppt und Sie die Daten in IdAndValues ​​untersuchen möchten.Wenn Sie beispielsweise die Ordnungszahlen und Werte im Array für eine bestimmte „ID“ finden möchten, können Sie ein Skript wie das folgende erstellen:

define PrintVal 
set $i=0
printf "ID = %d\n", $arg0
while $i<1000
  if IdAndValues[$i].ID == $arg0
    printf "ordinal = %d, value = %d\n", $i, IdAndValues[$i].vaue
    set $i++
  end
end
end

Sie können alle Variablen in Ihrer Anwendung im aktuellen Kontext, Ihre eigenen Variablen (in unserem Beispiel ist es $i), übergebene Argumente (in unserem Beispiel ist es $arg0) und alle GDB-Befehle (integriert oder benutzerdefiniert) verwenden ).

Verwenden Druckwert 1 von der GDB-Eingabeaufforderung zum Ausdrucken von Werten für ID „1“

Übrigens verfügt NetBeans zwar über eine GDB-Konsole, aber wenn Sie die Konsole verwenden, könnte Netbeans abstürzen.Und ich glaube, das ist der Grund, warum die Konsole in NetBeans standardmäßig ausgeblendet ist

Wenn Sie Eclipse für Java mögen, empfehle ich Eclipse CDT.Obwohl die C/C++-Unterstützung nicht so leistungsstark ist wie die von Java, bietet sie dennoch die meisten Funktionen.Es verfügt über eine nette Funktion namens „Managed Project“, die die Arbeit mit C/C++-Projekten einfacher macht, wenn Sie keine Erfahrung mit Makefiles haben.Sie können aber weiterhin Makefiles verwenden.Ich programmiere in C und Java und bin mit CDT sehr zufrieden.Ich entwickle die Firmware für ein eingebettetes Gerät in C und eine Anwendung in Java, die mit diesem Gerät kommuniziert, und es ist wirklich schön, für beide die gleiche Umgebung zu verwenden.Ich denke, es macht mich wahrscheinlich produktiver.

Ich benutze "Geany„Fand bisher gut, seine schnelle und leichte IDE.

Zu Geanys Funktionen gehören:

  • Codefaltung
  • Sitzungsspeicherung
  • Grundlegende IDE-Funktionen wie Syntaxhervorhebung, Tabulatoren, automatische Einrückung und Code-Vervollständigung
  • Einfaches Projektmanagement
  • System aufbauen
  • Farbauswahl (überraschend praktisch während der Webentwicklung)
  • Eingebettete Terminalemulation
  • Anruftipps
  • Symbollisten
  • Automatische Vervollständigung gängiger Konstrukte (z. B. if, else, while usw.)

Ich finde es toll, wie die Leute die Anfrage in der ursprünglichen Frage nach einer IDE völlig übersehen.Linux ist KEINE IDE.Das ist einfach nicht die Bedeutung dieser Worte.Ich habe C und C++ mit vi, gcc und make gelernt, und ich sage nicht, dass sie keine geeigneten Tools sind, aber sie sind KEINE IDE.Selbst wenn Sie ausgefeiltere Tools wie vim oder emacs oder einen anderen ausgefallenen Editor verwenden, ist das Eingeben von Befehlen in einer Befehlszeile keine IDE.

Außerdem wissen Sie alle, dass make als Teil von Visual Studio existiert, oder?Die Idee, dass eine IDE „einschränkend“ ist, ist einfach albern, wenn Sie die IDE verwenden können, um einige Dinge zu beschleunigen, und dennoch bei Bedarf auf Befehlszeilenfunktionen zurückgreifen können.

Alles in allem würde ich, wie einige der oben genannten, vorschlagen, Codeblöcke auszuprobieren.Es verfügt über eine anständige Code-Hervorhebung, eine ziemlich mühelose Möglichkeit, ein Projekt zu erstellen, es zu codieren, auszuführen usw., das ist der Kern einer echten IDE und scheint ziemlich stabil zu sein.Debuggen ist scheiße ... Ich habe noch nie einen anständigen interaktiven Debugger in irgendeiner Linux/Unix-Variante gesehen.GDB ist es nicht.Wenn Sie an das Debuggen im Visual-Studio-Stil gewöhnt sind, haben Sie ziemlich viel Pech.

Wie auch immer, ich werde meine Sachen packen, ich weiß, dass die Linux-Leute, die nur einen Blick darauf werfen, das niederschreien und mich in kürzester Zeit aus der Stadt vertreiben werden.

make + vim + gdb = eine großartige IDE

Ich mag Ultimativ++'s IDE.Es verfügt über einige Funktionen, die für die Verwendung mit einer eigenen Bibliothek entwickelt wurden (was übrigens ein ganz nettes Toolkit ist, wenn Sie weder GTK+ noch QT kaufen möchten), aber es funktioniert perfekt mit allgemeinen C++-Projekten.Es bietet eine ordentliche Code-Vervollständigung, gute Syntaxfärbung, integriertes Debugging und alle anderen Funktionen, die die meisten modernen IDEs unterstützen.

Ich schlage es wirklich vor Codeblöcke.Es ist nicht so umfangreich wie Eclipse und unterstützt Visual Studio-Projekte.

Vielleicht der Linux Tools-Projekt denn Eclipse könnte Ihre Bedürfnisse erfüllen?

Das Linux Tools-Projekt zielt darauf ab, Linux-Entwicklern eine voll funktionsfähige C- und C++-IDE zur Verfügung zu stellen.Wir bauen auf den Quellbearbeitungs- und Debugging-Funktionen des CDT auf und integrieren beliebte native Entwicklungstools wie GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng usw.Zu den aktuellen Projekten gehören LTTng-Trace-Viewer und -Analysatoren, ein RPM-.spec-Editor, die Autotools-Build-Integration, ein Valgrind-Heap-Nutzungsanalysetool und OProfile-Call-Profiling-Tools.

Unter Linux gibt es viele IDEs:

In Mein Erfahrung, die wertvollsten sind Finsternis Und Qt-Ersteller.Beide bieten alle „Standard“-Funktionen (z. B. automatische Vervollständigung, Syntaxhervorhebung, Debugger, Git-Integration).Es ist erwähnenswert, dass Eclipse auch Refactoring-Funktionen bietet, während Qt Creator die Integration mit Valgrind und Unterstützung für die Bereitstellung auf Remote-Zielen bietet.

Auch der Werbespot CLion-IDE Scheint ziemlich gut zu sein (aber ich habe es nicht ausgiebig genutzt).

Ich habe gehört, dass Anjuta für Gnome-Benutzer ziemlich geschickt ist.Ich habe ein bisschen mit KDevelop gespielt und es ist nett, aber es mangelt irgendwie an Funktionen.Code::Blocks ist ebenfalls sehr vielversprechend und gefällt mir am besten.

Sun Studio Version 12 kann kostenlos heruntergeladen werden (KOSTENLOSER und kostenpflichtiger Support verfügbar) – http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0.

Ich bin sicher, dass Sie in dieser IDE über Code-Vervollständigung und Debugging-Unterstützung verfügen, einschließlich Plugin-Unterstützung.

Sun Studio ist sowohl für Linux als auch für Solaris verfügbar.Foren: http://developers.sun.com/sunstudio/community/forums/index.jsp.Sun Studio Linux-Foren: http://forum.sun.com/forum.jspa?forumID=855

Ich bin gespannt auf Ihr Feedback zu diesem Tool.

BR,
~A

Ich habe zuvor Ultimate++ IDE verwendet und es ist ziemlich gut.

Und dann ist mir aufgefallen, dass man dort einfach nicht so arbeitet*, und habe alles über Bord geworfen, ein paar Tage damit verbracht, Handbücher zu lesen, meine Shell (Bash) einzurichten, eine GVIM-Umgebung einzurichten, die GCC/binutils-Toolchain kennengelernt, make und gdb und lebte glücklich bis ans Ende ihrer Tage.

Ich stimme weitgehend zu, aber das Problem liegt auch in der Wahrnehmung:Wir vergessen, wie schwierig es war, in einer beliebigen IDE (oder einer anderen Umgebung) produktiv zu werden.Ich finde IDEs (Visual Studio, NetBeans, Eclipse) in vielerlei Hinsicht erstaunlich umständlich.

Als langjähriger UNIX-Typ verwende ich immer Emacs.Aber das hat eine ziemlich steile und lange Lernkurve, daher bin ich mir nicht sicher, ob ich sie Neulingen empfehlen kann.

Ich würde das unterstützen;Ich verwende Emacs als meinen Haupteditor sowohl unter Linux als auch unter MSW (XP2, W2K).Ich würde nicht zustimmen, dass es eine hat steil Lernkurve, aber ich würde sagen, dass es aufgrund der großen Anzahl von Funktionen eine lang Lernkurve.Sie können innerhalb kurzer Zeit produktiv sein, aber wenn Sie möchten, können Sie auch in den kommenden Jahren neue Funktionen erlernen.

Erwarten Sie jedoch nicht, dass alle Funktionen von Emacs in Dropdown-Menüs verfügbar sind, es gibt einfach zu viele Funktionen, um sie dort zu finden.

Wie ich bereits erwähnt habe, verwende ich GNU Emacs seit Jahren auf MSW.Und es hat immer gut mit Visual Studio funktioniert, bis ich auf 2008 „aktualisiert“ habe;Jetzt ist es soweit Manchmal Es dauert viele Sekunden, bis die Dateien von der Festplatte aktualisiert werden.Der Hauptgrund für die Bearbeitung im VS-Fenster ist die Codevervollständigungsfunktion „Intellisense“.

geany Ich empfehle

Obwohl ich Vim verwende, verwenden einige meiner Kollegen Vim SlickEdit Das sieht ziemlich gut aus.Beim integrierten Debugging bin ich mir nicht sicher, da wir das bei unserem speziellen Projekt ohnehin nicht tun könnten.

SlickEdit bietet gute Unterstützung für die Navigation in großen Codebasen, mit Querverweisen und Tag-Springen.Natürlich verfügt es auch über die grundlegenden Dinge wie Syntaxhervorhebung und Code-Vervollständigung.

Ich verwende Eclipse CDT und Qt Creator (für Qt-Anwendungen).

Das sind meine Vorlieben.Es ist eine sehr suggestive Frage und es gibt so viele Antworten wie Entwickler.:) :)

SlickEdit.Ich verwende und liebe SlickEdit seit 2005, sowohl unter Windows als auch unter Linux.Ich habe auch Erfahrung in der Arbeit in Visual Studio (5, 6, 2003, 2005) und nur mit Emacs und der Befehlszeile.Ich verwende SlickEdit mit externen Makefiles, einige meiner Teamkollegen verwenden SlickEdit, andere verwenden Emacs/vi.Ich verwende nicht den integrierten Debugger, die integrierte Versionskontrolle und das integrierte Build-System:Generell empfinde ich zu viel Integration als echten Schmerz.SlickEdit ist robust (sehr wenige Fehler), schnell und intuitiv.Es ist wie ein deutsches Auto, ein Fahrerauto.

Die neuesten Versionen von SlickEdit scheinen viele Funktionen zu bieten, die mich nicht interessieren. Ich mache mir ein wenig Sorgen, dass das Produkt in Zukunft aufgebläht und verwässert wird.Im Moment (ich verwende V13.0) ist es großartig.

Für mich Ultimativ++ scheint die beste Lösung zu sein, um ein Cross-OS-Programm zu schreiben

Wenn Sie vim schon lange verwenden, sollten Sie es tatsächlich als Ihre IDE festlegen.Es sind viele Add-ons verfügbar.Ich fand einige davon ziemlich nützlich und habe sie hier zusammengestellt, schauen Sie sie sich an.

Und noch viel mehr in der vi/vim-Tipps & Tricks-Reihe dort drüben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top