Fehlermeldungen von GCC in Visual Studio ausgeben

In vielen C/C++ Embedded-Projekten an denen ich mitgearbeitet habe, wurde als Compiler eine Variante von GCC genommen. Als Entwicklungsumgebung hat allerdings MS Visual Studio gedient. Für Visual Studio als IDE spricht vieles. MSVS ist schnell, bietet sehr gute Navigationsmöglichkeiten und löst die Symbole recht zuverlässig auch bei nicht kompilierbarem Code und losen Source-Dateien auf. (Leider kann ihmo Eclipse/CDT mit MSVS nicht mithalten und kommt z.B. bei (nicht trivialen) Templates mit der Symbolauflösung schnell durcheinander.)

In der Regel wurde der Buildvorgang mit einem Batch-Skript gestartet und die Buildergebnisse wie Fehler, Warnungen, etc. in eine Log-Datei umgeleitet.
Um eventuelle Fehler zu beseitigen, musste man mühselig nach dem Dateinamen und der Zeilennummer in der Log-Datei suchen und zu der Stelle in Visual Studio manuell gehen.
Da die Fehlerformate von GNU und MSVS unterschiedlich sind, kann Visual Studio mit den GCC Fehlermeldungen nichts anfangen.

Dabei kann ein sehr einfacher Konverter die Arbeit erleichtern, so dass man mit dem Doppelklick auf die Fehlermeldung sofort zur richtigen Stelle gelangt.
Der Fehlerformat von GNU ist:
GCC format: source.cpp:123: error: a gcc error message
Der Fehlerformat von MSVS ist:
MSVC++ format: source.cpp(123) : error: a MSVS error message
Der Konverter ist ein Einzeiler:
grep ": error:\|: warning:" "%1" | sed "s/:\([0-9]\+\): \(error\|warning\):/(\1) : \2: /"
Es werden UNIX-Tools grep und sed benutzt. Sie dürften auf keinem Entwicklerrechner fehlen, auch unter Windows: http://gnuwin32.sourceforge.net/.
Der Skript sollte als eine Batch-Datei implementiert werden (einfach die Zeile in z.B. gcc2msvs.bat kopieren), und mit der Fehlerlogdatei als Parameter aufgerufen werden.

Zum Einbinden in Visual Studio benutze ich immer folgendes:
In MSVS Menu anklicken “Tools->External Tools”, “Add” und folgende Felder ausfüllen:
Title: BugFixing
Command: Path/gcc2msvs.bat
Arguments: “Path/GccBuildLogOutput”
Use Output window: YES

Jetzt kann man sich die Fehlermeldungen vom letzten Build mit “Tools->BugFixing” anzeigen lassen. Das Gute daran ist, es funktioniert mit jeder MSVS Instanz, es bedarf keines gültigen Projektes oder Pfadeinstellungen.

Viel Spaß damit und viel Erfolg in Euren Projekten.
Valentin Heinitz