1

Visual Studio 2012 を使用していますが、1 つの .cpp ソース ファイルを変更すると、Visual Studio 2012 は常にすべてのソース コード ファイルをコンパイルします。

どうすればこれを修正できますか? ありがとう

4

5 に答える 5

3

私は自分でそれを理解しました。プロジェクト ファイル用に Paragon (10) Windows ドライバーで HFS+ ドライブを使用しています。そこでは、Visual Studio は常にすべてのソース ファイルをコンパイルします。次に、それを NTFS ドライブに移動したところ、すべてが正常になりました。変更されたソース ファイルのみをコンパイルします。

于 2013-02-09T16:50:51.423 に答える
2

私の経験では、これは通常、プロジェクトに.hファイルが追加されているが、そのファイルがディスク上に存在しないことを意味します。VS(msbuildは実際には)はファイルが生成されたファイルであると見なし、そこにないため、ヘッダーが生成されるように再構築を行う必要があります。

この問題であるかどうかを確認するには、VSのソリューションエクスプローラーのヘッダーファイルフォルダーを調べて、リストされている各ファイルが実際にディスク上に存在することを確認します。VSは、不足しているファイルを別のアイコンで表示する場合があります。ファイルが本当に不要になった場合は、プロジェクトから削除する必要があります。

もう1つの考えられる原因は、.tlogファイルの不良です。これらは、ビルドへの入力を追跡するためにビルド中にmsbuildが作成するファイルです(.rcにリストされている.icoファイルなどを検出するのに役立ちますが、プロジェクトにファイルとして明示的に追加されません)。ソース管理を使用してVSの外部で同期すると、依存関係ファイルがだまされて、依存関係が見つからないと思い込み、生成されたファイルであると見なされることがあります。ここでの修正は、プロジェクトディレクトリ(例:del / s * .tlog)の下にあるすべてのtlogファイルを再帰的に削除することです。ファイルは再生成されるため、完全に安全に削除できます。

于 2013-02-09T15:08:16.237 に答える
0

Ctrl+F7ショートカットを使用するだけです。これにより、そのファイルのみがコンパイルされるため、変更を確認するには、オブジェクト ファイルを一緒に再リンクする必要があります (そのプロジェクトのフル ビルド)。

于 2013-02-09T15:02:07.453 に答える
-1

私は MS Visual Studio 2012 を使用しており、完全に異なる単一の .cpp ファイルをコンパイルするように命令したにもかかわらず、IDE が stdafx.cpp (#include "stdafx.h") をコンパイルすることを主張していることを確認しました。コンパイルが stdafx.cpp と stdafx.h を使用して stdafx.pch をビルドしようとしないことを確認するために、「プリコンパイル済みヘッダーを使用していない」ことを確認しました。それでも IDE は、他の単一の .cpp ファイルをコンパイルする前に stdafx.cpp をビルドすることを主張しました。念のため、stdafx.cpp ファイルを削除したところ、うまくいきました。「Build:Compile」コマンドを使用すると、単一の .cpp ファイルだけがコンパイルされるようになりました。これは私には IDE のバグのように思えます。

于 2013-10-26T00:08:52.917 に答える