Frage

Gibt es eine Möglichkeit, die GCC-Compiler zu verwenden, während noch in der Lage zu sein über das Visual Studio IDE zu entwickeln?

Unser Projekt ist Cross-Plattform, und ich bekomme sehr oft in Schwierigkeiten von meinen Kollegen weil ich einchecken Code, der nicht standardkonform ist (mit den VS-Compiler zurückgeführt werden kann dies!).

Ich würde immer noch in der Lage sein wie die MS-Compiler zu kompilieren, verwenden, so kann ich das Debuggen fortsetzen, etc, aber ich würde in der Lage sein mag Schalter zu kompilieren GCC verwenden, nur so dass ich sicher sein, kann ich nicht bin gegen die Build auf anderen Plattformen.

Ist das möglich?

War es hilfreich?

Lösung

Was ich bin würde immer noch zu schlagen eine Make-Datei benötigen, so dass ich teilweise die Beratung aus einer früheren Antwort wiederholen. Oder, wie auch schon erwähnt wurde, vielleicht schon Sie eine Make-Datei haben, wobei in diesem Fall haben Sie noch wenige Schritte unternehmen, um zu erreichen, was ich bin zu beschreiben.

Sobald Sie wissen, Ihren spezifischen Windows-Kommandozeilenbefehl zum Aufruf machen oder g ++ auf Ihrem Code, dann erstellen Sie ein „Pre-Build-Ereignis“ in der Visual Studio-Projekt. ( "Projekteigenschaften >> Konfigurationseigenschaften >> Veranstaltungen Bauen >> Pre-Build-Ereignis").

Die Pre-Build-Ereignis kann eine Fledermaus-Datei Skript aufrufen, oder jede andere Skript auf Ihrem Computer, und das Skript einen Fehler-Code zurückgegeben werden kann. Im Wesentlichen kann das Skript wieder zu Visual Studio, „Skript OK“ oder „Skript FAILED“ ist das Ausmaß der Menge der Kommunikation hat.

Das Skript nicht automatisch alle Visual Studio-Umgebungsvariablen sieht (wie $ (InputDir), $ (ProjectDir), $ (Solution), etc.), aber können Sie diese Variablen verwenden, wenn Sie festlegen, wie die anrufen Skript. Mit anderen Worten, können Sie diese Werte an das Skript als Argumente übergeben.

diese einrichten, so dass jedes Mal, wenn Sie in Visual Studio zu bauen, das Pre-Build-Ereignis zuerst ausgeführt werden versucht, machen / g ++ auf Ihrem Code. Wenn Ihr Skript (die, die Anrufe tätigen / g ++) Probleme erkennt, dann gibt das Skript einen Fehler und das Build kann dann und dort aufgehalten werden. Das Skript zu stdout oder stderr drucken kann, und dass die Ausgabe sollte in dem Visual Studio-Build-Ausgabefenster (das Fenster, das in der Regel zeigt Zeug für Sie sichtbar sein wie „========== Körperbau: 3 gelang, 0 failed“ ).

Sie können den Skriptdruck haben:

"BUILD FAILED, nicht tragbaren Code erkannt wird, machen / g ++ ergab folgende: ........."

Auf diese Weise müssen Sie sich erinnern, nicht in regelmäßigen Abständen von Visual Studio auf der Kommandozeile zu wechseln. Es wird für Sie automatisch jedes Mal, wenn Sie bauen durchgeführt werden.

Andere Tipps

Es gibt sicherlich Möglichkeiten, dies zu tun - das ist, wie wir für die PS3 mit Sonys Werkzeugkette entwickeln (die auf gcc basieren). Ich weiß nicht genau wissen, wie das funktioniert, aber es integriert ziemlich nahtlos in VS.

Ich denke, was Sie tun müssen, ist es entweder eingerichtet mit einer Make-Datei zu bauen (wahrscheinlich am einfachsten) oder ein Wrapper-Programm zu schreiben, die VC Argumente zu gcc denjenigen umwandelt. Auch, wenn Sie den Fehler / Warnausgang im VS-Format mögen (so können Sie darauf klicken und die Datei / Zeile nach oben im Editor bekommen), müssen Sie etwas, um die Ausgabe zu konvertieren.

Dieses Zeug helfen Sie können in einer verwandten Diskussion über mit VS mit WRS / VxWorks Version der gcc-Tools:

beachten Vor allem die Programm verknüpft es , die die Fehlerausgabe umwandelt.

Ich glaube nicht, dass es ein einfacher Schalter ist, weil die gcc-Befehlszeilenoptionen von VSs sehr unterschiedlich sind. In jedem Fall nur den Compiler ausgeführt wird nicht trivial, da Ihr Build-System wahrscheinlich eine Reihe von Prä-Prozessor setzt definiert und Variablen erstellen, die eingestellt werden müssen, damit die Kompilierung erfolgreich zu sein.

Wenn Ihr Kollege auf Unix arbeitet, hat er wahrscheinlich ein make, scons oder cmake-basierte Build-System sowieso. Sie können Cygwin die Standard-Unix-Toolkette unter Windows zu installieren, einschließlich gcc, make, Flex, Bison und alle andere Unix-Leckereien. Es gibt native Versionen von scons und cmake, aber die werden versuchen, VS zu verwenden, so dass Sie nicht helfen. Ich habe nicht versucht, sie durch Cygwin Installation zu sehen, ob das sich gcc zwingt, aber das ist vielleicht nicht für Sie relevant sein.

Erstellen eines Make-System, das die VS-Compiler verwendet, ist möglich, aber schmerzhaft (been there, done that). Und eine andere Frage. ;)

Sie können dann eine spezielle buildstep verwenden, um die gcc kompilieren von innen VS. laufen Es wäre besser, ein separates Build-Ziel zu haben (wie Debug und Release), und Sie können die in den Projektdateien (sie sind nur ASCII-Dateien, check them out) erstellen, aber ich bin nicht genug von einer VS Person wissen, wie einfach das zu tun wäre. Keeping it up-to-date ein wenig schmerzhaft sein wird, könnten Sie ein Skript schreiben wollen es automatisch zu erstellen.

Ich musste getrennte Makefiles halten, um mit gcc kompilieren. Es gibt eine Kosten im Voraus mit dem Lernen machen assoziiert, aber Sie werden aus der intimen Kenntnis des Codes und die Unterschiede zwischen VS C ++ und gcc profitieren. Als ich das tat, war ich mit VC 6, so kann es mit VS 2005 nun einen besseren Weg geben.

Versuchen Sie Cygwin, solange Sie setzen alle Ihre Makefiles richtig können Sie immer versuchen, beide auf VS zu kompilieren und auf GCC

Es hängt, wie komplex Ihre Projektdateien sind:

Sie definitly eine gcc-Umgebung wie Cygwin müssen.

  • für kleine Projekte oder einzelne Datei kompilieren Sie ein benutzerdefiniertes Build-Tool (regel-Datei) verwenden können,

  • für große Projekte / Lösungen, die ich Auto-Generierung bin mir ein Autotool konfigurieren / Make-Datei aus dem vcproj / SLN-Datei und kompiliert diese innerhalb des IDE. Quelldateien / Zeilen der Warnungen und Fehler von gcc ihrer IDE-Äquivalent (anklickbare in Ausgabefenster) übersetzen lassen.

Vermutlich sind Sie bereits Make-Datei mit Ihrem Projekt zu bauen, da es plattformübergreifend ist. So stellen Sie Ihr VS-Projekt ein Makefile-Projekt mit verschiedenen Projektkonfigurationen, die die Make-Datei mit verschiedenen Parametern beginnen, um anzuzeigen, ob ein Build für MSVC oder GCC ist.

Wenn Ihre MSVC Make-Datei Build ist in der Lage zu bauen Debug-Dateien (PDB) -., Die es soll, dann wird die VS-Debugger funktionieren nahtlos auch tun können,

Dann bauen GCC innerhalb von Visual Studio verwendet, ist so einfach wie die ‚GCC‘ Konfiguration Dropdown auf der Symbolleiste auswählen.

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