it-swarm.com.de

Wie verwende ich GCC mit Microsoft Visual Studio?

Ich erstelle ein sehr großes Projekt (ein paar tausend Zeilen) und möchte Notepad ++ daher nicht verwenden. Eine IDE würde es so viel einfacher machen. Ich habe Erfahrung mit Microsoft Visual Studio und liebe es. Gibt es eine einfache Möglichkeit, Cygwins GCC in Microsoft Visual Studio zu verwenden? 

Gibt es alternativ noch andere gute Windows-IDEs für GCC neben NetBeans und Eclipse? (Ich hasse beide mit Leidenschaft.)

38
MasterGberry

Hier gibt es mehrere Möglichkeiten:

Option 1: Erstellen Sie ein benutzerdefiniertes Build-Tool

Mit Visual Studio 2005 und höher können Sie Benutzerdefinierte Build-Tools registrieren . Sie sagen dem IDE, wie Dateien einer Form (z. B. einer .cpp-Datei) in eine andere Form (z. B. eine .obj-Datei) umgewandelt werden sollen.

Soweit ich weiß, hat dies noch niemand für GCC getan. Wenn Sie dies selbst tun möchten, müssen Sie COM-Code schreiben. Dies ist wahrscheinlich ein zu großer Pool, um nur für ein einzelnes Projekt zu erforschen. Sie müssten einen zwingenden Grund haben, dieses Projekt anzunehmen.

Sie müssen dann jedes Projekt manuell anpassen, um es mitzuteilen, das benutzerdefinierte Build-Tool anstelle des Standardwerts zu verwenden, da Sie eine Dateinamenerweiterung (.cpp, wahrscheinlich) verwenden, die Visual C++ bereits kennt. Sie werden in Schwierigkeiten geraten, wenn Sie versuchen, die VC++ - und g ++ - Compiler für eine einzelne aus mehreren Modulen erstellte ausführbare Datei zu mischen.

Auf der positiven Seite, wenn Sie ein Open-Source-Projekt starten wollten, klingt das für mich gut. Ich nehme an, Sie würden schnell eine große Nutzerbasis gewinnen.

Option 2: Makefile-Projekt

  1. Starten Sie Visual Studio und sagen Sie Datei> Neues Projekt.

  2. Wählen Sie in dem Abschnitt Visual C++ Makefile Project aus

    Aktivieren Sie das Kontrollkästchen nicht, um das Projekt in der Quellcodeverwaltung einzuchecken, wenn Sie Visual Studio Express verwenden. Wenn Sie nicht für Visual Studio bezahlen, entscheiden Sie sich wahrscheinlich auch dafür, nicht für die teuren Microsoft-Teamlösungen zu bezahlen. VSE unterstützt keine VCS Plugins von Drittanbietern, z. B. _. AnkhSVN für Subversion .

  3. Füllen Sie den Makefile Project Wizard aus:

    • Befehlszeile erstellen: make
    • Clean-Befehle: clean machen
    • Befehlszeile neu erstellen: Alle sauber machen

Lassen Sie das Feld Output (zum Debuggen) in Ruhe, es sei denn, Sie tun etwas Ungewöhnliches, wenn Sie Ihre ausführbare Datei nicht nach dem Projektnamen benennen oder den Namen der ausführbaren Datei an einer anderen Stelle als der obersten Projektebene angeben.

Lassen Sie den Rest der Felder in Ruhe, es sei denn, Sie wissen, was sie sind und warum Sie sie ändern möchten. Beispiel: Sie können in der Zeile Preprocessor definitions ein -D-Flag angeben, um separate Debug- und Release-Ausgaben zu erhalten. Wenn Sie wissen, dass Sie das wollen, wissen Sie, wie Sie es einrichten müssen, also werde ich diese lange Antwort nicht noch länger machen, um sie zu erklären. (Und wenn Sie nicht wissen, wie, aber wollen, ist dies wahrscheinlich ein gutes Thema für eine neue SO Frage!)

Für den Release-Build werden dieselben Fragen gestellt. Wenn Sie sich mit separaten Debug- und Release-Builds beschäftigen möchten, nehmen Sie hier Änderungen vor.

Nachdem Sie all dies getan haben, müssen Sie immer noch die Makefile erstellen und Ihrer PATH einen make.exe hinzufügen. Wie bei der Debug-Versions- oder Release-Frage würde diese Frage von diesem Punkt abweichen.

So hässlich das aussieht, es ist immer noch einfacher als das Erstellen von benutzerdefinierten Build-Tools. Außerdem sagen Sie, Sie müssen eventuell zu Unix portieren, also benötigen Sie Makefile trotzdem.

Option 3: Plattformübergreifende Entwicklung

Sie sagen, Sie möchten dieses Programm irgendwann nach Unix portieren, aber das bedeutet nicht, dass Sie GCC jetzt unter Windows verwenden müssen. Es ist durchaus möglich, ein Programm so zu schreiben, dass es unter Visual C++ unter Windows und GCC/Makefiles auf * ix-Systemen erstellt wird.

Es gibt sogar mehrere Tools, die dies erleichtern, indem VS-Projektdateien und Makefiles aus einer einzigen gemeinsamen Quelle generiert werden. Ich verwende zufällig Bakefile , aber CMake ist in den letzten Jahren immer beliebter geworden. SCons erledigt auch diesen Job und ist wahrscheinlich auch beliebter als Bakefile; es wird sicherlich öfter aktualisiert.

32
Warren Young

Ich komme aus der Zukunft.

Ich halte eine C/C++ - Toolchain unter Verwendung von Visual Code unter Win/Lin/Mac und MinGW, die von Choclatey ..__ installiert werden. (Dies wurde für meine Vernunft gemacht - GDB und GCC jedoch installieren Sie wollen)

Ich habe es mit GCC und GDB mit IntelliSense unter Verwendung von MS 's seltsamen JSON-Makefiles ausgeführt . Eines Tages wird jemand (Sie?) Ein Gradle- oder Python-Skript schreiben, um diese zu erzeugen. vorerst die Beispiele online in den docs scheinen zu funktionieren.

Es scheint drei Arten von JSON-Dingen zu erfordern;

  • eine einzige IntelliSense -Konfiguration für den gesamten Arbeitsbereich
  • ein Debugging Configuration Eintrag für jedes Binärprogramm, das Sie debuggen möchten
    • diese können die Build-Tasks aufrufen
  • a Build Task Per-Artefakt
    • Ich glaube nicht, dass es eine "Anforderung" oder "Abhängigkeit" gibt, die thingie-mah-bob; Es tut uns leid
1
pal