第四課Makefileファイルの作成(下)

1383 ワード

1はじめに
前の授業では、Makefileの基礎知識には、原理、事前定義、コマンドフォーマットが含まれています.これにより、自動コンパイルされたファイルを完成させることができます.これらの知識はあなたを完成させることができます.考えてみればmakは本当に強いですね.もしプロジェクトのファイルが多すぎると、各ターゲットのファイルに指令を書く必要がありますか.開発速度を速め、プロジェクトのメンテナンス性を高めるために、答えはもちろんあります.これが次の説明するI n f e r e n c e R u l e sです.この導出ルールがあればmakeがもっと強いです.
2原理:
Inf e r e n c e R u l e sは、ある拡張子を持つファイルから別の拡張子を持つファイルをどのように構築するかを決定するテンプレートです.説明:ターゲットファイルcalc.oが表示されると、自動的に接尾辞が表示されます.cファイルcalc.cが依存オブジェクトに加わると、calc.cはcalc.oの依存ファイルであり、shellコマンド:cc-c calc.cも導出.
 
3実践:
説明してもよくわからないかもしれませんが、前の授業のmakefileファイルに従って以下のように導くことができます.
  
EXE=calc

OBJECTS=calcmain.o calc.o 

$(EXE):$(OBJECTS)    #       。

      cc -o $(EXE) $(OBJECTS)    #      shell  

calcmain.o:calc.h

      cc -c calcmain.c   #      shell  


上の例cc命令は書かなくてもいいです.makeが自動的に命令を導出できるので、これもmakeの暗黙のルールです.この時になったらもっと分かると思いますが、前の授業のMakefileファイル全体が導きに従って作成されたらどうなるのでしょうか.以下を見てみましょう.
EXE=calc

OBJECTS=calcmain.o calc.o 

 

$(EXE):$(OBJECTS)

       cc -o $(EXE) $(OBJECTS)

clean:

      rm -f $(EXE) $(OBJECTS)


なぜならo自動導出calcmain.cこれを省略すれば、ccコマンドも自動的に導出されます.
今日ブログ園で突然検索した結果、1つの文章が非常に書かれていることがわかりました.ここで引用します.http://www.cnblogs.com/wdpp/archive/2010/07/06/2386931.html、考えがはっきりしていないので、見に行くことができます.