2011-06-21 18 views
0

私に助けてもらえますか? これはmakeファイルのコードです 私はちょうど異なるディレクトリに異なる目的ファイルを保存しようとしていますか?下記のコードの 。メークファイルの概念

私は、我々が使用している場合、さらに誰も私を助けることができるcotinueする方法を知らない私はここにアップstuckedだkajjにobjjとball.oとcall.oでmall.o fall.oを保存したい
OBJECTS = objj/mall.o objj/fall.o 

BACK = kajj/ball.o kajj/call.o 

DIR = objj kajj rajj 

execc/gola : $(OBJECTS) $(BACK) 
    gcc $^ -o [email protected] 
$(OBJECTS):objj/%.o:%.c 
    mkdir $(DIR) 
    gcc -c $< -o [email protected] 
$(BACK) : kajj/%.o 

%.o:%。c 1つ1つにすべてのobjファイルを置き換えますが、それらを分離する方法です。誰も私がこれらの行が実際に何をしているか教えてください:objj /%。o:%。c.im私たちの行にはコロンを1つだけ持つことができませんが、ここでは2人の人が私を混乱させてしまいます。

答えて

1

2つの列ルールの場合、最初のものが実際のターゲットとして考慮され、最初の列の後にはパターンルールとして考慮されます。

$(BACK): kajj/%.o: %.c 
    mkdir $(DIR) 
    gcc -c $< -o [email protected] 

したがって、kajj内のオブジェクトをコンパイルするために、あなたがして、最後のルールを置き換えることができます