Build von Visual C++ 2008 beim ersten Kompilierungsfehler automatisch stoppen?

Lesezeit: 5 Minuten

Build von Visual C 2008 beim ersten Kompilierungsfehler automatisch stoppen
jwfear

Ich weiß, dass ich einzelne Quelldateien kompilieren kann, aber manchmal – sagen wir, wenn Sie eine von vielen verwendete Header-Datei bearbeiten .cpp Dateien – mehrere Quelldateien müssen neu kompiliert werden. Dafür ist Build da.

Das Standardverhalten des „Build“-Befehls in VC9 (Visual C++ 2008) besteht darin, zu versuchen, alle Dateien zu kompilieren, die ihn benötigen. Manchmal führt dies nur zu vielen fehlgeschlagenen Kompilierungen. Normalerweise achte ich nur auf Fehler und drücke Strg-Pause, um den Build manuell zu stoppen.

Gibt es eine Möglichkeit, es so zu konfigurieren, dass der Build bei der stoppt allererster Kompilierungsfehler (nicht der erste fehlgeschlagene Projektbuild) automatisch?

Ich habe mir ein besseres Makro ausgedacht, Jungs. Es stoppt sofort nach dem/den ersten Fehler(n) (sobald das Build-Fenster aktualisiert wird).

Visual Studio -> Extras -> Makros -> Makro-IDE … (oder ALT+F11)

Private Sub OutputWindowEvents_OnPaneUpdated(ByVal pPane As OutputWindowPane) Handles OutputWindowEvents.PaneUpdated
    If Not (pPane.Name = "Build") Then Exit Sub

    pPane.TextDocument.Selection.SelectAll()
    Dim Context As String = pPane.TextDocument.Selection.Text
    pPane.TextDocument.Selection.EndOfDocument()

    Dim found As Integer = Context.IndexOf(": error ")

    If found > 0 Then
        DTE.ExecuteCommand("Build.Cancel")
    End If

End Sub 

Hoffe es klappt bei euch.

  • @ Eric, danke, das sieht nach einer guten Lösung aus, ich werde es versuchen. Weiß jemand, warum der Vorschlag von @Eric abgelehnt wurde?

    – jwfear

    6. Juli 09 um 18:50 Uhr

  • Laut meiner Reputationsseite wurde ich nicht heruntergestimmt. Ich weiß nicht.

    – Eric Muyser

    7. Juli 09 um 12:39 Uhr

  • Guter Versuch, und es funktioniert. Aber es flackert wie alles beim Bauen, also ist es nichts für mich. Wenn es nur eine Möglichkeit gäbe, den Text aus dem Ausgabefenster zu bekommen, ohne alles auswählen zu müssen …

    – Dämonencodeaffe

    23. April 10 um 14:06 Uhr

  • Sie müssen nicht alle auswählen verwenden; so etwas sollte man können bool found = pPane.TextDocument.StartPoint.CreateEditPoint().FindPattern(": error"). Es sollte hoffentlich auch schneller sein, da es nicht darauf angewiesen ist, den gesamten Text des Ausgabefensters bei jeder Bereichsaktualisierung herauszukopieren.

    – Noah Richards

    11. Juni 10 um 2:43 Uhr

  • @Noah Richards, danke fürs Wiegen! Ich konnte das nicht finden und entschied mich für SA. Wenn ich das nächste Mal VS starte, werde ich es versuchen und die Antwort aktualisieren.

    – Eric Muyser

    24. Juni 10 um 4:50 Uhr

Dies kann durch Hinzufügen eines Makros erfolgen, das als Reaktion auf das Ereignis OnBuildProjConfigDone ausgeführt wird.

Das Makro ist wie folgt:

Private Sub BuildEvents_OnBuildProjConfigDone(ByVal Project As String, ByVal ProjectConfig As String, ByVal Platform As String, ByVal SolutionConfig As String, ByVal Success As Boolean) Handles BuildEvents.OnBuildProjConfigDone

  If Success = False Then
    DTE.ExecuteCommand("Build.Cancel")
  End If

End Sub

  • Diese Methode stoppt den Build beim ersten PROJEKT-Fehler, nicht beim ersten Kompilierfehler.

    – jwfear

    13. Oktober 08 um 16:47 Uhr

  • Ja, aber für mich ist das nah genug (im Gegensatz dazu, die nächsten 20 oder so Projekte zu bauen, bevor ich aufhöre).

    – jmatthias

    7. Dez. 08 um 6:37

  • Ich denke, es hängt davon ab, wie viele Dateien sich in einem Projekt befinden und was Sie kompilieren. Wenn ich eine überall enthaltene Datei ändere, kann dies einen ziemlich langen Neuaufbau auslösen, und wenn ich einen Tippfehler habe, möchte ich, dass mein Bau sofort gestoppt wird. Vielleicht kann VC10 (mit MSBuild) tun, was ich will.

    – jwfear

    27. Dezember 2008 um 1:55 Uhr

  • Das ist nicht das, wonach das Originalplakat gesucht hat, aber es ist genau das, wonach ich gesucht habe. Falls es nicht offensichtlich ist, fügen Sie dies hinzu, indem Sie zu Tools->Macros->Macros IDE gehen, EnvironmentEvents öffnen und es dort einfügen.

    – mhenry1384

    13. Januar 09 um 20:05 Uhr

  • Sie können DTE.ExecuteCommand(“View.ErrorList”) auch direkt nach DTE.ExecuteCommand(“Build.Cancel”) hinzufügen und es wird sofort das Fehlerlistenfeld angezeigt.

    – Samuel

    5. Juli 11 um 14:00 Uhr

Ja, das funktioniert gut auf MSVC 2005-2010:

Public Module EnvironmentEvents
  Private Sub OutputWindowEvents_OnPaneUpdated(ByVal pPane As OutputWindowPane) Handles OutputWindowEvents.PaneUpdated
    If Not (pPane.Name = "Build") Then Exit Sub

    Dim foundError As Boolean = pPane.TextDocument.StartPoint.CreateEditPoint().FindPattern(": error")
    Dim foundFatal As Boolean = pPane.TextDocument.StartPoint.CreateEditPoint().FindPattern(": fatal error")

    If foundError Or foundFatal Then
      DTE.ExecuteCommand("Build.Cancel")
    End If
  End Sub
End Module

  • Arbeitete für mich in VS 2008, danke. Eine Sache habe ich hinzugefügt, um die Fehlerliste zu öffnen DTE.Windows.Item(EnvDTE80.WindowKinds.vsWindowKindErrorList).Activate()

    – Thomas

    12. Oktober 11 um 17:44 Uhr


1644304327 382 Build von Visual C 2008 beim ersten Kompilierungsfehler automatisch stoppen
RKG

Ich weiß, dass die Frage für VS 2008 war, aber ich bin darüber gestolpert, als ich nach derselben Antwort für VS 2012 gesucht habe. Da Makros in 2012 nicht mehr unterstützt werden, funktionieren Makrolösungen nicht mehr.

Sie können eine Erweiterung herunterladen, die anscheinend in VS 2010 und 2012 funktioniert Hier. Ich kann bestätigen, dass es in VS 2012 gut funktioniert.

Der ursprüngliche Link zur Erweiterung wurde in dieser Antwort angegeben.

1644304327 645 Build von Visual C 2008 beim ersten Kompilierungsfehler automatisch stoppen
Martin Beckett

Es gibt dieser Beitrag – nicht sicher, ob der Build beim ersten Fehler oder beim ersten fehlgeschlagenen Projekt in einer Lösung angehalten wird.

Ctrl-break stoppt es auch manuell.

Nun, wenn es eine Möglichkeit gäbe, es daran zu hindern, 10 Minuten damit zu verbringen, Intelisense neu zu erstellen, nachdem ein Build fehlgeschlagen ist!

  • Aber ctrl-break beschädigt die Dateien, die zu diesem Zeitpunkt erstellt werden, sodass Sie sie explizit neu kompilieren müssen.

    – Lew

    26. September 2008 um 12:02 Uhr

  • Die im Link beschriebene Methode stoppt den Build beim ersten PROJEKT-Fehler, nicht beim ersten Kompilierungsfehler.

    – jwfear

    13. Oktober 08 um 16:41 Uhr

  • Der archivierte Link ist Visual Studio-Tipp: Töten Sie diesen Build!

    – zhenguoli

    28. September 21 um 12:18 Uhr

1644304327 344 Build von Visual C 2008 beim ersten Kompilierungsfehler automatisch stoppen
Quantenschwarz

Sie können auch herunterladen Dies Erweiterung, scheint für jede Version von Visual Studio zu funktionieren

  • Aber ctrl-break beschädigt die Dateien, die zu diesem Zeitpunkt erstellt werden, sodass Sie sie explizit neu kompilieren müssen.

    – Lew

    26. September 2008 um 12:02 Uhr

  • Die im Link beschriebene Methode stoppt den Build beim ersten PROJEKT-Fehler, nicht beim ersten Kompilierungsfehler.

    – jwfear

    13. Oktober 08 um 16:41 Uhr

  • Der archivierte Link ist Visual Studio-Tipp: Töten Sie diesen Build!

    – zhenguoli

    28. September 21 um 12:18 Uhr

.

819690cookie-checkBuild von Visual C++ 2008 beim ersten Kompilierungsfehler automatisch stoppen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy