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. 複数のファイルでmakeの下でdlibをコンパイルするには?
- 2. 複数のtsvファイルを1つのcsvファイルに変換する
- 3. Node-Sassは1つのディレクトリ内の複数のファイルを1つのファイルにコンパイルします
- 4. 複数の.cファイルを1つの実行可能ファイルにコンパイルする方法
- 5. PHP - 複数のファイルと1つのファイル
- 6. 複数のmp3ファイルを1つのページで再生する
- 7. 複数の.JSファイルを1つのファイルにまとめる
- 8. 複数のファイルを1つのtarファイルにまとめる
- 9. 複数のC++ファイルを.txtファイルでコンパイルしますか?
- 10. 複数のファイルを1つの変数にエンコードする
- 11. 複数のjpgファイルを1つのファイルから分離する
- 12. 複数のファイルの名前をランダムな名前に変更すると、1つのファイルの名前が変更されます。
- 13. IEでファイルを再アップロードすると、ファイルが変更されないのはなぜですか?
- 14. ES6はファイルを複数の場所にインポートします。なぜファイルが1回ロードされるのですか?
- 15. PhpStormとSCSSがscssファイルを1つのCSSファイルにコンパイルします
- 16. 複数のJSONファイルを1つにコンパイルするための呼び出し
- 17. ファイルを変更した後にwebpackを再コンパイルするには?
- 18. 複数のファイルの内容をファイル名で変更します
- 19. GNU Makeでファイルに複数行の変数を出力します
- 20. 複数のファイルをタイトルブロックで1つにコンパイル
- 21. 複数のチェンジリストに1つのファイルの変更を追加する
- 22. Perl、複数のファイルから1つの変数を読む
- 23. ヘッダファイルが変更されたときにGNU-Makeが再コンパイルされない
- 24. GNU makeで複数の拡張子を持つリスト内の各ファイルの拡張子を変更するには?
- 25. Grunt-contrib-sassは1つのファイルとディレクトリをコンパイルします
- 26. 複数のファイルのテキストを1つのファイルに結合する
- 27. 複数のファイルの内容を1つのファイルにマージする
- 28. 複数の目的のCファイルを1つのライブラリにコンパイルするには?
- 29. Android:複数のファイルをまとめて1つのファイルにする
- 30. 複数のファイルを再生して再生しますか?
[最小サンプル](http://sscce.org/)を投稿してください。あなたが尋ねていることを見ずに質問に答えることは不可能です。 – outis
私は、makeユーティリティをよく理解している人なら誰でも答えが可能だと主張します。 – Rooster
サンプルコードを提供するポイントは、あなたが話していることを明確にして指定することです。テクノロジーは微妙なことです。小さな違いは大きな影響を与える可能性があります。代表的なサンプルがなければ、回答者はあなたの特定のメイクファイルで何が起こっているのかを推測できます。あなたは物事を最適に構成することはできません。なぜ[あなたの質問の改善](http://tinyurl.com/so-hints)に逆らっていますか? – outis