47

個々のソース ファイルをコンパイルできることはわかっていますが、多くのファイルで使用されるヘッダー ファイルを編集する場合など、.cpp複数のソース ファイルを再コンパイルする必要がある場合があります。それがビルドの目的です。

VC9 (Visual C++ 2008) の「ビルド」コマンドのデフォルトの動作は、それを必要とするすべてのファイルをコンパイルしようとすることです。これにより、多くのコンパイルが失敗する場合があります。私は通常、エラーを監視し、ctrl-break を押してビルドを手動で停止します。

ビルドが最初のコンパイル エラー(最初に失敗したプロジェクト ビルドではない) で自動的に停止するように構成する方法はありますか?

4

6 に答える 6

28

私はより良いマクロの連中を思いついた。最初のエラーの直後 (ビルド ウィンドウが更新されるとすぐ) に停止します。

Visual Studio -> ツール -> マクロ -> マクロ IDE... (または 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 

皆さんにとってうまくいくことを願っています。

于 2009-07-06T03:03:53.247 に答える
17

これは、イベント OnBuildProjConfigDone に応答して実行されるマクロを追加することで実行できます。

マクロは次のとおりです。

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
于 2008-10-11T22:30:57.257 に答える
8

ええ、これは 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
于 2011-01-21T10:20:39.193 に答える
1

この投稿があります-ソリューションの最初のエラーでビルドが停止するのか、最初に失敗したプロジェクトでビルドが停止するのかはわかりません。

Ctrl-breakも手動で停止します。

ビルドが失敗した後、10分かけてインテリセンスを再構築するのをやめる方法があれば!

于 2008-09-25T18:05:10.577 に答える
1

この拡張機能をダウンロードすることもできます。Visual Studio のすべてのバージョンで動作するようです。

于 2015-09-01T09:55:55.633 に答える