個々のソースファイルをコンパイルできることは知っていますが、たとえば、多くの.cpp
ファイルで使用されるヘッダーファイルを編集する場合、複数のソースファイルを再コンパイルする必要がある場合があります。それがビルドの目的です。
VC9(Visual C++ 2008)の「ビルド」コマンドのデフォルトの動作は、それを必要とするすべてのファイルをコンパイルしようとすることです。これにより、多くのコンパイルが失敗する場合があります。私は通常、エラーを監視し、ctrl-breakを押してビルドを手動で停止します。
ビルドが最初のコンパイルエラー(最初に失敗したプロジェクトビルドではない)で自動的に停止するように構成する方法はありますか?
私はより良いマクロの人を思いついた。最初のエラーの直後に停止します(ビルドウィンドウが更新されるとすぐに)。
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
それがあなたたちのためにうまくいくことを願っています。
これは、イベント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
ええ、これはMSVC2005-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
この投稿 -ソリューションで最初のエラーでビルドが停止するのか、最初に失敗したプロジェクトで停止するのかわからない。
Ctrl-breakも手動で停止します。
ビルドが失敗した後、10分かけてインテリセンスを再構築するのを止める方法があれば!
ダウンロードすることもできます this 拡張子、VisualStudioのすべてのバージョンで動作するようです