ファイルがa.cpp
ありb.cpp
、 に警告が表示されa.cpp
、 にエラーが表示されたとしますb.cpp
。エラーを修正しb.cpp
て再コンパイルします。Visual Studio は再コンパイルするa.cpp
必要がないため、以前に見つかった警告を思い出しません。
どうにかして警告を持続させたいと思います。ただし、警告をエラーとして扱いたくありません(警告があってもコンパイル/実行したい)。これは可能ですか?
ファイルがa.cpp
ありb.cpp
、 に警告が表示されa.cpp
、 にエラーが表示されたとしますb.cpp
。エラーを修正しb.cpp
て再コンパイルします。Visual Studio は再コンパイルするa.cpp
必要がないため、以前に見つかった警告を思い出しません。
どうにかして警告を持続させたいと思います。ただし、警告をエラーとして扱いたくありません(警告があってもコンパイル/実行したい)。これは可能ですか?
プロジェクト設定に移動し、C/C++ タブ (カテゴリ: 一般) ですべての警告をエラーとして設定できます。
本質的に、あなたは運が悪いです。C++ コンパイルでは、すべてのエラーと警告が破棄されます。.OBJ ファイルが欠落している .CPP ファイル (つまり、エラーがあり前回失敗したファイル) のみを再コンパイルするため、エラーのみが表示されます。
いくつかのオプションがあります。私の頭の上から:
Hernan が既に述べたように、ビルド結果 (警告) を含む中間ファイルのコピーを作成するカスタム ビルド ステップを追加します。これに名前を付ける方法はわかりませんが、カスタム ビルド ステップとして呼び出されるバッチ ファイルを作成できます。
警告を保存したい理由は私にはわかりません。それらをエラーとして扱うか、無視するか、プラグマ/無効にします。
可能な限りエラーとして警告を出して実行することを強くお勧めします。もちろん、自分で書いているすべてのコードでもそうです。ここで警告を修正する方が、後になってからすべての警告を 1 つのパスで実行するよりもはるかに簡単です。
警告をエラーとして実行する理由はいくつかあります。
/WX (または -Werror) を指定して実行しない正当な理由がまったくわかりません。
プロジェクトを再構築するか、a.cpp ファイルのみを再コンパイルします。警告はコンパイラによって出力されるため、現在のコンパイルに含まれていないファイルの警告は表示されません。
出力ペインに移動して Ctrl+S を押すと、現在のビルド出力を保存できます (覚えていない場合は、デフォルトで output-build.txt になります)。
あなたのプロジェクト設定では、ビルド出力メッセージをファイルに保存できると思います。それをチェックして、あなたの結果を教えてください。
乾杯
警告の原因となるファイルを再コンパイルしたくない場合、1 つのオプションとして、コンパイラの出力を警告用にフィルター処理し、//TODO コメントとして .cpp ファイルに書き込む小さなユーティリティを作成することが考えられます。 .
その後、IDE はそれらを todo リストに配置します。
箱から出してすぐにこれを行うものは何も知りませんが、おそらくそれほど難しくはありません。
ユーティリティが実際のソース ファイルをいじりたくない場合 (そして、そうするかどうかはわかりません)、//TODO コメントをダミーの 'todo.cpp' ファイルに書き込んで、プロジェクト内のファイル。その後、それらは todo リストに表示され、ファイルはコメントにすぎないため、ビルドには影響しません。リストに重複を追加しないことについて、ユーティリティがスマートであることを確認してください。todo.cpp 行から対応する警告の実際の場所に移動するマクロを作成できます。