私はかなり大きな VS2010 C++ ソリューションを持っています。ソリューションには 1 つのプロジェクトしかないため、プロジェクト間の相互依存関係はありません。問題は、GIT から更新を取得するときに、VS2010 が、更新された新しいファイルの影響を受ける翻訳単位を再構築するほど賢くない場合があることです。これにより、何らかの偽の方法で必然的にクラッシュする実行可能ファイルが作成されます。
部分的なビルドを信頼できず、git を飛び回るたびに完全な再構築を行わなければならず、生産性が低下するため、これは私にとって苦痛です。
注: 私は決して git を非難しているわけではありません。関連する場合に備えて、私のプロセスを指摘しているだけです。また、注意: ビルドするときは、プロジェクトを右クリックして [ビルド] を選択します。
このコンパイラを「デバッグ」して、変更に依存する他のファイルを再構築する必要があることに気付かない理由を知っている人はいますか?
編集: さらに調査すると、GIT の使用を問題として除外できます。多くの場所に含まれているヘッダーファイルを編集して保存し、新しいファイルをビルドしない「ビルド」を実行することで、これを再現できます。
編集 2: 問題は #defines に関連しているようです。別のヘッダーにのみ含まれるヘッダーがあります...そして、#defines で指定された特定の条件下でのみそのヘッダーに含まれます。したがって、 #if COND1 #elif COND2 #else < 問題のあるヘッダー #endif があり、それは壊れています。else ケースからインクルードを取り出すと、依存関係がトリガーされて適切にコンパイルされます。