2011-12-14 5 views
0

こんにちは私は完全なビルドがいつ必要なのか、部分的なビルドが十分なのかを調べようとしています。 多くのアーティフィシャルがありますが、具体的な回答を見つけることができません。依存するモジュールのビルドで完全ビルド時および部分ビルド時?

1.Change:

以下

が私の考えているとき

全ビルドが必要です。

---ビルドオプションを変更したり、最適化手法を使用したりします。オブジェクトレイアウトで

2.changes:

--- headderファイルの変更、追加およびクラスの新しいメソッドの削除。

---変数または仮想関数を追加または削除してオブジェクトサイズを変更します。

---プラグマパックを使用してデータの配置を変更しました。ロジックで

1.Anyの変更がある限り、それはインターフェイスを変更していないよう

2を指定:時に部分的なビルド

グローバル変数で

3.Anyの変更は十分です。スタック変数の変更

+0

これはコミュニティとしてタグ付けされた方が良いかもしれません。 –

+0

完全な部分ビルドと同じ定義を使用しているかどうかはわかりません。完全なビルドを行ういくつかのケースがあり、私は 'make'に再ビルドする必要があるものをビルドさせます。例えば、私がヘッダーを変更するとき。 – AProgrammer

+0

ビルド環境がコンパイラ設定ファイルを含む依存関係を正しく決定している限り、単純なタイムスタンプの順序は正しいセマンティクスを提供するはずです。 –

答えて

1

理想的な世界では、すべてのビルドツールが依存関係のいずれかが変更された場合に自動的に検出するため、完全なビルドは決して必要ありません。

しかし、これは理想的な世界でのみ該当します。実際にツールは、人間と人間によって書かれている

  • を構築失敗を作り、ツールのアカウントに可能なすべての変更を取らないことがありので、
  • は怠け者なので、ツールは、アカウントに変更を取らないことがあります。

これは、ビルドツールで何か経験があることを意味します。よく書かれたメイクファイルですべてを考慮に入れることができ、完全なビルドを行う必要はほとんどありません。しかし、21世紀には、メイクファイルはもはや最先端の​​ものではなく、まもなく複雑になりました。今日の開発環境は依存関係を見つけるのにかなり良い仕事ですが、大規模なプロジェクトの場合、開発環境のコンセプトに入れにくい依存関係があり、スクリプトを書くことになります。

あなたの質問には本当の答えはありません。実際には、すべてのリリースで完全な再構築を行うと良いですし、この再構築はボタンを1つ押すだけで完了します。また、コードがコンパイル可能かどうかを確認するために2時間待つことを望んでいないので、毎日の作業のために部分ビルドを行います。しかし、たとえ日常作業であっても、リンカ/コンパイラ/(あなたが選んだツールの選択肢)が最も簡単な変更さえも認識していないため、完全な再構築が必要な場合があります。

関連する問題