私はの初心者でmake
あり、いつ使用するか迷っていますmake clean
。
ある同僚は、増分ビルドmake
はファイルのタイムスタンプに基づいていると私に言った。そのため、VCSで古いバージョンのファイルをチェックアウトすると、「古い」タイムスタンプが付けられ、「このファイルを再コンパイルする必要がない」とマークされます。その後、そのファイルは次のビルドに含まれません。
同じ同僚によると、それを使用する理由になりますmake clean
。
とにかく、私make clean
は他のStackExchangeの質問から「いつ使用するか」という質問への答えを大まかに得ましたが、私のもう1つの質問は次のとおりです。
make
たとえば、SHA-1ではなくファイルのタイムスタンプに依存してインクリメンタルビルドを行うのはなぜですか?たとえば、Gitは、SHA-1を使用してファイルが変更されたかどうかを正常に判断できることを示しています。
速度の問題ですか?
make
ソフトウェアが壊れることはありませんが、make
新しいバージョンで下位互換性を維持するための努力がなされています。正当な理由なくコアの動作を変更することは、それとは正反対です。そして、日付は、なぜそれがSHA-1を最初に使用するように作られていないのか、またはそれが利用可能になったときにそれを改良するのが容易ではなかった理由を示してmake
います(すでに数十年前のことです)。
make
70年代に作成されました。SHA-1は90年代に作成されました。Gitは00年代に作成されました。あなたが望む最後のことは、誰かが試されてテストされたシステムですべてを最新のものにすることを決めたので、30年間働いていたいくつかのあいまいなビルドが突然失敗することです。