C++ IDE für Windows mit umfangreichem Funktionsumfang: Codevervollständigung, Refactoring usw

Ich suche eine integrierte Entwicklungsumgebung für C++, die unter Windows 8 laufen soll. Das Programm sollte idealerweise folgende Features unterstützen:

  • Code-Vervollständigung/Hinweis
  • Einzugshilfe
  • Satzstellung markieren
  • Refactoring (Fähigkeit, zumindest Variablen, Klassen, Funktionen usw. umzubenennen)
  • Codenavigation (analog zu ctrl+Klicken in Eclipse Indigo)

Darüber hinaus sollte die IDE standardkonform sein , was bedeutet, dass sie keinen Compiler oder Codeparser verwendet, der wissentlich und vorsätzlich gegen den C++-Standard verstößt (wie Microsoft Visual Studio ), und den Benutzer benachrichtigt, wenn er/sie nicht standardisierte schreibt. konformer Code (obwohl ein Compiler ihn akzeptieren könnte).

Derzeit kann ich keine Produkte erwerben, die nicht kostenlos sind, aber ich bin bereit, Antworten zu akzeptieren, die ein relativ billiges Produkt (z. B. < 100 $) beschreiben.

Hier muss unterschieden werden, dass die Einhaltung von Standards eng mit der zugrunde liegenden Toolchain zusammenhängt, die zum Kompilieren Ihres Codes verwendet wird. IOW, eine IDE kann nicht gegen den C++-Standard verstoßen, da sie nicht dafür verantwortlich ist, Ihren Quellcode in lauffähigen Code umzuwandeln – der Compiler ist es.
Testen Sie CLion von JetBrains.
Wie viel Erfahrung haben Sie mit vi und/oder emacs? Bitte zählen Sie es mit, auch wenn die Erfahrung Jahrzehnte zurückliegt. (So ​​wie man nie verlernt, wie man Fahrrad fährt, vergisst man auch nie ganz, wie man in vi mit überraschend wenigen Tastenanschlägen abgefahren coole Sachen macht.)
@unforgettableid Seit ich diese Frage gestellt habe, bin ich tatsächlich dazu übergegangen, vim hauptsächlich als Editor meiner Wahl zu verwenden.
"Die IDE sollte standardkonform sein" - Diese Anforderung ist für die IDE eigentlich nicht sinnvoll, da die Einhaltung der Jobstandards vom zugrunde liegenden Compiler und nicht von der IDE abhängt. Wenn Sie beispielsweise Code::Blocks verwenden und ihm mitteilen, dass es MSVC verwenden soll, funktioniert das von Ihnen in Ihrem Link erwähnte nicht standardmäßige Verhalten natürlich auf die gleiche Weise.
@ApproachingDarknessFish: Gut! Hast du schon mal den Evil-Mode ausprobiert ? Dies ist eine Kombination aus Vims exzellenten Tastaturbelegungen – plus einem Großteil der Leistungsfähigkeit von Emacs – zusammen. Siehe auch das vierminütige Demo-Video auf YouTube.
Ich stelle fest, dass Clang und GCC beide versuchen, miteinander kompatibel zu sein, und dass GCC viele Erweiterungen hat, die über den Standard hinausgehen.
@ApproachingDarknessFish: Bitte erwägen Sie, die Antwort von CodeBlocks nicht zu akzeptieren, wenn Sie die Kommentare berücksichtigen, die tatsächlich gültig zu sein scheinen.
@Brandin: Ich schlage vor, die Frage zu bearbeiten, damit dieser Satz bedeutet, was er vernünftigerweise bedeuten kann und was OP wahrscheinlich tatsächlich will.
@einpoklum Ich sehe jetzt, dass mein Kommentar tatsächlich den ersten hier aufgeführten Kommentar dupliziert. Anscheinend wurde das Problem der Einhaltung von Standards vom OP ignoriert oder nicht verstanden. Bearbeiten würde nicht helfen; nur die Aufklärung des OP würde.
@Brandin Das OP wurde geschult, interessiert sich aber nicht mehr für diese Frage. Fühlen Sie sich frei zu bearbeiten, wie es die Community für richtig hält.

Antworten (8)

Code::Blöcke

Ich würde dieses für Windows empfehlen, wenn Sie in einem Team arbeiten, das mehrere Plattformen verwendet. Es kann die Konfigurationsänderungen verarbeiten, sodass Sie nie bemerken, dass Ihre Teamkollegen nicht dieselben Betriebssysteme verwenden. Es ist eine sehr leistungsfähige moderne IDE, kann aber für einige Projekte zu viel sein. Es kann viele Compiler-Toolchains sofort verwenden und kann für nahezu alle nicht standardmäßigen konfiguriert werden.

Wie die offizielle Website sagt, ist Code::Blocks eine „... Open Source, plattformübergreifende, kostenlose C-, C++- und Fortran-IDE“.

Merkmale

  1. Importiert MSVC-Projekte und Dev-C++-Projekte
  2. Open Source
  3. Nativ plattformübergreifend
  4. Geschrieben in C++. Keine interpretierten Sprachen oder proprietären Bibliotheken erforderlich.
  5. Erweiterbar durch Plugins
  6. Syntaxhervorhebung, anpassbar und erweiterbar
  7. Code-Vervollständigung/Hinweis
  8. Einzugshilfe
  9. Codenavigation

Weitere Informationen zu den Funktionen finden Sie hier auf der offiziellen Website .

Screenshot von der Website des Entwicklers

Dies bietet Refactoring-Unterstützung? Wie?
Code::Blocks wird nicht mehr gepflegt. Ich würde stattdessen Qt Creator empfehlen. Es ist sowieso besser.
@Timmmm: Es scheint tatsächlich, dass die Code::Blocks-Website seit einem ganzen Jahr nicht mehr aktualisiert wurde.
@Timmmm Code::Blocks lebt noch.

Es gibt ein C/C++-Bundle für Netbeans .

Ich kann überprüfen, ob es Syntaxhervorhebung, Codevervollständigung und Codeformatierungs-/Einrückungshilfe hat.

Obwohl ich das C++-Bundle nicht persönlich verwendet habe, verwende ich die Java- und PHP-Varianten täglich, und ich gehe davon aus, dass sie auch im C++-Bundle vorhanden sein sollten, da in beiden Cntrl+Click-Navigation und Refactoring vorhanden sind.

Der einzige wirkliche Nachteil, den ich bei Netbeans gefunden habe, ist, dass es manchmal nach ein paar Stunden so träge werden kann, dass es aufgrund (was ich vermute) eines Speicherlecks (zumindest unter 64-Bit-Windows 7) nicht mehr reagiert Mal müssen Sie den zugehörigen java.exe-Prozess beenden, um den Speicher freizugeben. Dieses Problem wurde möglicherweise behoben, da ich es seit einigen Monaten nicht mehr erlebt habe.

Das CDT-Projekt bietet eine voll funktionsfähige C- und C++-IDE basierend auf der Eclipse- Plattform. Zu den Funktionen gehören: Unterstützung für die Projekterstellung und den verwalteten Build für verschiedene Toolchains, Standard-Make-Build, Quellnavigation, verschiedene Quellwissenstools wie Typhierarchie, Aufrufdiagramm, Include-Browser, Makrodefinitionsbrowser, Code-Editor mit Syntaxhervorhebung, Faltung und Hyperlink Navigation, Quellcode-Refactoring und Code-Generierung, visuelle Debugging-Tools, einschließlich Speicher, Register und Disassemblierungs-Viewer. ( Quelle )

CDT Project Screenshot mehrerer Fenster

Ich würde nicht sagen, dass es voll funktionsfähig ist – schließlich sind seine Refactoring-Fähigkeiten nahezu null und es bietet keine automatische Fehlerbehebung und Warnungsauflösung, wie Sie es in Eclipse für Java bekommen – aber es kommt. Vielleicht wird es in einem Jahrzehnt oder so schön ... (verstehen Sie mich nicht falsch - ich benutze es täglich).

CLion

CLion-Benutzeroberfläche

Es ist eine plattformübergreifende IDE mit erweiterter C++-Unterstützung, die von ReSharper C++ bekannt ist. Die IDE stammt von JetBrains, dem Unternehmen hinter IntelliJ Idea und Android Studio.

Funktioniert unter Windows, Linux und MacOS.

Zu den Funktionen:

  • Code-Vervollständigung – Vervollständigt Variablennamen, Klassenmitglieder, Header-Dateinamen und alles, was Sie von einer C++-IDE erwarten würden.

  • Einrückung - Es hat eine konfigurierbare automatische Einrückung.

  • Syntaxhervorhebung ist für C++ und einige Websprachen vorhanden.

  • Erweiterte Refactoring-Unterstützung. Vielleicht die beste unter den C++-IDEs. Es erlaubt Ihnen, Variablen und Klassen umzubenennen, Code in eine separate Funktion zu extrahieren, Mitglieder in einer Klassenhierarchie nach oben/unten zu verschieben, den Code zu verschieben und zu kopieren, und ich habe wahrscheinlich nicht alles abgedeckt.

  • Code-Navigation - Mit Strg+Klick können Sie zur Definition gehen, nach Referenzen suchen und sich durch die von Ihnen besuchten Code-Positionen vor- und zurückbewegen.

  • Es hat eine sehr gute statische Analyse. Sie können die meisten Fehler sehen und korrigieren, bevor Sie den Code einmal kompilieren. Es warnt auch vor Fällen, die von anderen IDEs ignoriert werden, wie z. B. nicht verwendete Includes.

  • Codegenerierung - Sie können automatisch Deklarationen für unbekannte Variablen generieren oder eine neue Klasse mit ihren Quell- und Header-Dateien erstellen.

Eine weitere Stärke von CLion ist, dass es eine CMake CMakeLists.txt-Datei als Projektdatei verwendet, anstatt ein neues Format zu verwenden. Dies ermöglicht die austauschbare Entwicklung eines Projekts mit oder ohne die IDE und erleichtert den Import von Projekten in diese.

Derzeit kostet es 100 US-Dollar für den persönlichen Gebrauch und ist für die Open-Source-Entwicklung kostenlos.

Orwell Dev-C++

Vor langer Zeit war Dev-C++ vielleicht die beliebteste kostenlose C/C++-IDE unter Windows, aber es war fehlerhaft, und die Originalversion wurde ziemlich lange nicht gepflegt. Die Orwell-Version behebt viele bekannte Probleme. Es lohnt sich zumindest mal reinzuschauen. Erwähnenswert ist auch ein weiterer Fork namens WX-Dev-C++ , der für die RAD-GUI-Entwicklung nützlich sein könnte, aber auch diese Version wird nicht gepflegt.

Orwell Dev-C++-Version: (Orwell Dev-C++-Version) Von der Sourceforge-Site des Entwicklers WX-Dev-C++-Version (WX-Dev-C++-Version) Von der Website des Entwicklers Ursprüngliche Dev-C++-Version: (Ursprüngliche Dev-C++-Version:)Von der Website des Entwicklers

Funktionen, die alle Versionen unterstützen:

  1. Unterstützt GCC-basierte Compiler
  2. Integriertes Debugging (mit GDB)
  3. Unterstützung für mehrere Sprachen (Lokalisierung)
  4. Klassenbrowser
  5. Code-Vervollständigung
  6. Debug-Variable Browser
  7. Projektmanager
  8. Anpassbarer Syntaxhervorhebungseditor
  9. Erstellen Sie schnell Windows-, Konsolen-, statische Bibliotheken und DLLs
  10. Unterstützung von Vorlagen zur Erstellung eigener Projekttypen
  11. Makefile-Erstellung
  12. Bearbeiten und kompilieren Sie Ressourcendateien
  13. Werkzeugmanager
  14. Druckunterstützung
  15. Einrichtungen suchen und ersetzen
  16. Paketmanager für die einfache Installation von Add-On-Bibliotheken
  17. CVS-Unterstützung
  18. Aufgabenliste
  19. CPU-Fenster

Die WX-Version erweitert dies um:

  1. WYSIWYG wxWidgets- Ressourcen-Editor

Die Orwell-Version erweitert dies um:

  1. MinGW GCC 4.8.1 32bit
  2. TDM-GCC 4.8.1 32/64bit
  3. Satzstellung markieren
  4. Code-Vervollständigung
  5. Zeigt Informationen zum Code an, wenn Sie den Mauszeiger über den Code bewegen
  6. Bietet vom Benutzer bearbeitbare Verknüpfungen und Werkzeuge
  7. GPROF-Profilierung
  8. GDB-Debugging
  9. Devpak IDE-Erweiterungen

Es gibt auch Community-Dev-Pak (Plug-Ins). Eine gute Seite, um welche zu finden, ist devpaks.org . Außerdem scheint es WX-Dev-Pak-Erweiterungen für Orwell in diesem externen Thread zu geben , aber ich habe sie nicht getestet.

Ich verwende derzeit WxDev-C++ für meine C++-Entwicklung, und ich würde es wirklich nicht empfehlen, wenn Sie WxWidgets nicht benötigen. Selbst dann machen die vielen großen Fehler, die es hat, insbesondere der GUI-Designer, der nicht mehr mit dem Code synchron ist, Visual Studio zu einer bevorzugten Umgebung für WxWidgets.
winterblodd, ja, ich wünschte, es wäre besser gepflegt. Haben Sie Codeblocks ausprobiert? wiki.codeblocks.org/…
Ich habe Orwell verwendet und obwohl es brauchbar ist (und viel besser als Blutvergießen), fehlt es ihm immer noch an vielen der Funktionen, nach denen ich suche. Ich werde mir WX aber mal ansehen.
Also nur Windows?

Qt-Creator

Die IDE ist nun in Zeiten von Qt5 ausgereift genug, um für die meisten Qt-Entwickler wirklich die erste Wahl zu sein. Dies erforderte eine ziemlich große Menge an Funktionen, die die IDE jetzt auch für Nicht-Qt-Projekte wirklich gut nutzbar machen.

Vorteile:

  • Wird mit einer optionalen MinGW-Toolchain geliefert, wenn es mit einem Qt-Toolkit installiert wird, und kann dennoch Nicht-Qt-Projekte erstellen.
  • Die Integration von MinGW- und MSVC-Toolchains erfolgt ohne zusätzlichen Aufwand, einschließlich des Debuggens mit diesen.
  • CMake-Unterstützung
  • Große Anzahl von Plugins verfügbar
  • Vollständiger Satz von IDE-Funktionen, die man von einer neueren IDE erwarten könnte.

Nachteile:

  • Es ist schwierig, eine C++-Toolchain zu integrieren, die nicht mit den Qt-Installationsprogrammen geliefert wird
Ich stimme zu, dass dies bei weitem das Beste ist, besonders jetzt, wo das Clang-Code-Modell und die statische Analyse eingebaut sind. Es ist jetzt tatsächlich besser als Intellisense. Alle anderen in dieser Frage erwähnten IDEs liegen Jahre zurück (außer vielleicht CLion, das ich nicht ausprobiert habe).

Geany

Laut der offiziellen Seite „wurde [i]t entwickelt, um eine kleine und schnelle IDE bereitzustellen, die nur wenige Abhängigkeiten von anderen Paketen hat. Sie unterstützt viele Dateitypen und hat einige nette Funktionen.“

Dies ist ein großartiger Minimalprogrammierungseditor, der eine Windows-Portierung hat . Es ist relativ billig (0 $ < 100 $), läuft unter Windows 8, macht keine Annahmen über den Compiler, (AFAIK) behält den C++-Standard bei, da es standardmäßig GNU gcc/g++ für C/C++ verwendet (Sie können jeden installierten Compiler verwenden ) und hat viele der Funktionen, nach denen Sie fragen. Obwohl es etwas eingeschränkter ist als einige der anderen Unternehmenslösungen, kann es sich besonders in Umgebungen mit wenig Ressourcen behaupten, da:

Merkmale:

  1. Code-Vervollständigung/Hinweis
  2. Einzugshilfe
  3. Satzstellung markieren
  4. UPDATE: Es unterstützt minimales Refactoring und Reflow (und es gibt Tools/Plugins, die dies ebenfalls verbessern können)
  5. Codenavigation (Strg, wenn sich die Deklaration in einer geöffneten Datei befindet)

Es befindet sich in einer ähnlichen Kategorie wie das erstaunliche Programm Notepad++ und die Unix/GNULinux-Kraftpakete vim oder emacs , aber ich würde Geany empfehlen, da es mit einer Lernkurve von fast 0 einfach zu bedienen ist, und:

Hat zusätzlich:

  • frei
  • Plattformübergreifend
  • gibt Ihnen das gleiche Erscheinungsbild (obwohl dies in hohem Maße anpassbar ist), unabhängig von der Plattform
  • ermöglicht mehrsprachige Unterstützung (häufig verwenden große Projekte Skripting usw. und es ist schön, nur eine IDE zu benötigen)
  • Keine Compiler-Annahmen - es ist einfach, jede C++-kompatible Toolchain zu verwenden
  • Sehr anpassbar
  • SEHR leicht
  • Vollständige Terminalintegration unter POSIX-Systemen (Linux)

Screenshot von Software online gefunden

Ich persönlich verwende diese IDE fast ausschließlich, wenn ich Code schnell unter Linux mit einer GUI schreibe. Es hat einige sehr nette Features für C/C++, die normalerweise viel größeren Programmen vorbehalten sind. Es ist schnell und kann fast jedes nicht-binäre Formulardokument öffnen. Es hat nette Tastenbefehle wie Zeilenwechsel, Duplizierung und mehrzeilige Einrückung und Kommentarsteuerung. Sie können VIM darin verwenden (als Teil des bereitgestellten Terminalzugriffs). Es kann Wege zum Erstellen von Software einsparen, ohne dass Projekte ihre eigenen Erstellungsoptionen benötigen. Selbst wenn es beispielsweise kein Makefile gibt (das mit einer Funktionstaste verwendet werden kann), können Sie Build-Optionen speichern, die basierend auf dem Dateityp ausgewählt werden können. Dies ist nützlich, wenn es mehrere Bibliotheken gibt, die Sie häufig verwenden und mit denen Sie verknüpfen, aber schnell etwas schreiben, kompilieren und testen möchten.g++ -Wall -o "%e" "%f" 'allegro-config --cflags --libs'könnte zum Kompilieren eines Allegro4-Programms oder nvcc -arch=sm_20 -o "%e" *.o -lcudart 'pkg-config opencv --cflags --libs'zum Erstellen einer CUDA-Anwendung verwendet werden, die auch OpenCV verwendet. Sobald Sie diese gespeichert haben, können sie aus einem Dropdown-Feld oder als Funktionstaste für jede .CPP-Datei oder den Dateityp, mit dem Sie sie verknüpft haben, ausgewählt werden. Ich habe auch festgestellt, dass der druckformatierte und syntaxhervorgehobene Code in PDF (unter Verwendung von Linux CUPS IIRC) sehr nützlich ist, um Programmdokumentationen für Klassen einzureichen. Da ich so wenig Ressourcen habe, habe ich es auf einem tragbaren Linux, und nachdem ich mein eigenes Setup / meine eigene Konfiguration vorgenommen habe, habe ich seitdem unzählige Stunden bei jedem Projekt gespart. Um etwas zu einem bestehenden Projekt hinzuzufügen, erstellen Sie einfach ein neues .CPP-Dokument oder öffnen Sie ein vorhandenes aus dem Dateimanager, und Sie arbeiten bereits, anstatt zu konfigurieren, aus einer Vorlage zu erstellen, Bibliotheken manuell hinzuzufügen usw.

Erklären Sie, wie dies C++ gut unterstützt. Wenn dies nicht der Fall ist, ist dies nicht wirklich eine Antwort.
Ich habe erklärt, wie dies C ++ gut unterstützt, je nachdem, wie ich es verwende, und die Frage des OP beantwortet.
Wie geht es mit Refactoring um? (OP: "mindestens Variablen usw. umbenennen") Das ist eigentlich sehr schwer richtig zu machen. Wenn Geany es tut (Sie sagen es uns), wie macht es es auf eine Weise, die "richtig" ist?

Visual Studio-Code

Dies ist eine flexible IDE für viele Programmiersprachen und unterstützt C++ sehr gut durch viele Plugins. Es wurde 2015 veröffentlicht und wird aktiv gepflegt. Siehe dieses Zitat aus Wikipedia :

Visual Studio Code ist ein Quellcode-Editor, der von Microsoft für Windows, Linux und macOS entwickelt wurde. Es umfasst Unterstützung für Debugging, eingebettete Git-Steuerung, Syntaxhervorhebung, intelligente Codevervollständigung, Snippets und Code-Refactoring. Es ist auch anpassbar, sodass Benutzer das Design, die Tastenkombinationen und die Einstellungen des Editors ändern können. Es ist kostenlos und Open Source, obwohl der offizielle Download unter einer proprietären Lizenz steht.

Screenshot aus Wikipedia