3

コンパイラが常にファイルを再構築するようにするMSVCのプラグマステートメントはありますか?また、ファイルがビルドされたばかりであると思われる場合もありますか?

4

2 に答える 2

4

これを達成するために私が使用するトリックは次のとおりです。

1)次のようなビルド後のステップコマンドを追加します

echo #define __FORCE_REBUILD__ "Include this file in a cpp to invalidate it at each compilation" > $(ProjectDir)ForceRebuild.h

2)強制的に再構築する各cppに「#include"ForceRebuild.h"」を追加します。

ビルドが実際に発生した後にのみ機能します(Visual Studioがプロジェクトのビルドをスキップすることを決定した場合、ビルド後はスキップされるため)。

于 2013-02-14T07:28:50.910 に答える
0

あるとは思えませんが、あり得ないと確信しています(一般的なツールチェーンへの大幅な変更を除いて)。

理由はかなり単純です。何をビルドするかを決定するとき(または同等のもの)、関係するファイルのコンテンツmakeはまったく調べません。オブジェクトファイルのタイムスタンプをオブジェクトファイルのタイムスタンプと比較するだけです。ソースファイル。オブジェクトファイルがそのソースよりも新しい場合、コンパイラはそのファイルに対して呼び出されることはないため、コンパイラはそのファイルのコンテンツ(理論化されたものを含む)をまったく見ることができません。#pragma

于 2012-07-08T13:51:45.117 に答える