1つのソースファイルを編集する場合、makeを実行してそのファイルとそのファイルが依存するすべてのファイルを再コンパイルしますか?もしそうなら、なぜですか?1つのファイルを変更すると、なぜ「make」が複数のファイルを再コンパイルしますか?
答えて
なぜですか?
これは、Makeファイルを持っていることの全目的です。
特定のソースファイルが変更されている場合、すべての依存ファイルが変更されたファイルで再コンパイルされ、すべての依存ファイルが同じソースを参照し、コードベース全体が同期します。
どのようにですか?
make
ユーティリティをチェックメイクファイルは一つには、明示的に他のファイルが特定のファイルに依存しているユーティリティを伝える依存関係のルールを指定する必要が作成されmodified.Whenされたファイルを確認するためにタイムスタンプ。したがって、これらのルールを使用すると、すべての依存ファイルもコンパイルされるため、生成されたバイナリは同じ更新コードを参照します。
なぜか、私の例をユーモアしてください。ファイルAにはファイルBで定義された関数の呼び出しが含まれています。したがって、ファイルBにセミコロンを追加するだけで、Aが呼び出す関数シグネチャが変更された可能性があるため、makeはAを再コンパイルする必要があります。 – Rooster
@bbarre:はい、そうです。 –
@bbarre:多分。 B.hがヘッダーファイルで、関数を宣言する*または*定義していて、A.cppにB.hが含まれている場合、B.hはA.o(またはA、またはA.exe)の依存関係でなければなりません。しかし、B.cppがその関数を定義するファイルであるのに対し、A.cppは関数の宣言を他の場所で得ているのに対し、A.cppとB.cppを別々にAoとBoにコンパイルすれば、B.cppは必要ないAoの依存関係その場合、A.oとB.oは、あなたがそれらからビルドする実行可能ファイルの依存関係です。したがってB.hを残してB.cppを変更した場合、B.oとexeは再構築されますが、A.oは再構築されません。 –
ソースファイルを編集するときに、makeファイルを に加えて、そのファイルが依存関係になっているすべてのファイルを再コンパイルしますか?もしそうなら、なぜですか?
悪いメークファイル(それがどのように表示されていないか)が原因で発生する可能性があります。
ソースファイルにはテンプレートの実装が含まれており、どこかに含まれています。
もしそのファイルが他のファイルに#includeされていれば、それらの他のファイルが再コンパイルされ、プログラムの新しい "半分"と新しい "半分"の古いファイルを望んではいけません。
- 1. PHP - 複数のファイルと1つのファイル
- 2. 複数のmp3ファイルを1つのページで再生する
- 3. 複数のjpgファイルを1つのファイルから分離する
- 4. GNU Makeでファイルに複数行の変数を出力します
- 5. Perl、複数のファイルから1つの変数を読む
- 6. 複数のチェンジリストに1つのファイルの変更を追加する
- 7. ファイルを変更した後にwebpackを再コンパイルするには?
- 8. 複数のファイルをタイトルブロックで1つにコンパイル
- 9. GNU makeで複数の拡張子を持つリスト内の各ファイルの拡張子を変更するには?
- 10. Android:複数のファイルをまとめて1つのファイルにする
- 11. 1つのファイルを複数のファイルにコピーするLinuxコマンド
- 12. 複数のファイルを1つのファイルにインデックスする
- 13. Grunt-contrib-sassは1つのファイルとディレクトリをコンパイルします
- 14. 複数の目的のCファイルを1つのライブラリにコンパイルするには?
- 15. 複数のファイルを再生して再生しますか?
- 16. sass変数が1つのファイルにコンパイルされたときにオーバーライドされる
- 17. 複数ページのCSSを1つのファイルにまとめる
- 18. g ++複数のファイルをコンパイルする
- 19. 複数の異なるCSVファイルを1つのExcelドキュメントに変換する
- 20. Grailsシェルは変更されたファイルを再コンパイルしません
- 21. Gerrit:複数のコミットを1つの "変更"にまとめる
- 22. VIM - 複数のファイルの行を1つのファイルにまとめる
- 23. makeはすべてのオブジェクトを再コンパイルしますか?
- 24. 複数の.woffファイルを1つにまとめる
- 25. 複数の巨大な.accdbファイルを1つに統合する
- 26. 複数のCoffeescriptファイルを1つのファイルに結合しますか? (複数のサブディレクトリ)
- 27. 複数の定義エラー:ファイルに1つ、mocファイルに1つ。
- 28. 複数のファイルからなるGoプログラムをコンパイルするには?
- 29. なぜ、すべてのcppファイルが再コンパイルされないのですか?
- 30. 複数のファイルを1つに縮小できますか?
[最小サンプル](http://sscce.org/)を投稿してください。あなたが尋ねていることを見ずに質問に答えることは不可能です。 – outis
私は、makeユーティリティをよく理解している人なら誰でも答えが可能だと主張します。 – Rooster
サンプルコードを提供するポイントは、あなたが話していることを明確にして指定することです。テクノロジーは微妙なことです。小さな違いは大きな影響を与える可能性があります。代表的なサンプルがなければ、回答者はあなたの特定のメイクファイルで何が起こっているのかを推測できます。あなたは物事を最適に構成することはできません。なぜ[あなたの質問の改善](http://tinyurl.com/so-hints)に逆らっていますか? – outis