3

Visual Studio C ++ libプロジェクトプロジェクトは、プリコンパイル済みヘッダーを使用するように設定されていますstdafx.cppは、プリコンパイル済みヘッダーを作成するように設定されています

ヘッダーファイルMyClass.hがあります。ビルドしてから、コンパイルに失敗するはずのMyClass.hに変更を加えても、コンパイルは成功します。再構築を行う場合、または「MyClass.h」を含むcppファイルに変更を加えると、期待どおりにコンパイルが失敗します。

プリコンパイル済みヘッダーを使用しているので、これは予想されますか?2nds buidがプリコンパイル済みヘッダーをオフにせずにヘッダーの変更を取得するように修正する方法はありますか?

4

4 に答える 4

3

変更するヘッダー ファイルが、ソリューション エクスプローラーでプロジェクトによって参照されていることを確認してください。この場合、変更時にフル ビルドがトリガーされます。

于 2010-11-02T14:26:40.753 に答える
2

プロジェクトのプロパティで、[最小限の再構築を有効にする] を [いいえ] に設定します。

于 2010-11-02T23:17:09.543 に答える
0

VisualStudio は、多くの場合、変更に対して非常に愚かになります。どちらの方向にも進む可能性がありますが、通常は実行している方向に進みます。

あるファイルで使用されているヘッダーの変更をキャッチしましたが、他のファイルで使用されているという事実はキャッチしませんでした。そのため、1 つをコンパイルしますが、他のものはコンパイルしません。次に、本当に奇妙なリンカ エラーが発生します。

もちろん、それはあなた自身のせいかもしれませんが、実際、VSは悪名高いほど愚かです. 完全な再構築により、次回まで問題が完全に修正される場合があります。また、何らかの方法でプロジェクト ファイルをホース処理して、うまくいけば元の状態に戻せる場合もあります (ソース サーバーのリバートのように)。「元に戻す」は、ほとんどの場合、この種の fubar を元に戻しません。

これは、プリコンパイル済みヘッダーにあるヘッダーである必要がないことを何度か指摘しました。ややランダムに見えますが、もう 1 つの一般的な相関関係は、ヘッダーがテンプレートでいっぱいであることです。VS は単純に遅れた wrt テンプレートです。

于 2010-11-02T17:03:11.053 に答える
0

stdafx.cpp に問題のヘッダーが含まれていますか?

于 2010-11-02T14:31:43.520 に答える