如果您是新的做,你應該用簡單的任務開始,工作到複雜的。
假設你有display1/disp1.cc
,希望建設display1/disp1.o
。您可以在Install/Makefile
做到與規則:
display1/disp1.o: display1/disp1.cc
g++ -c display1/disp1.cc -o display1/disp1.o
把那完美的工作,然後再繼續。然後你可以有幾個這樣的規則在Install/Makefile
:
display1/disp1.o: display1/disp1.cc
g++ -c display1/disp1.cc -o display1/disp1.o
display1/foo1.o: display1/foo1.cc
g++ -c display1/foo1.cc -o display1/foo1.o
display1/foo2.o: display1/foo2.cc
g++ -c display1/foo2.cc -o display1/foo2.o
然後你就可以使用自動變量,以使規則更清潔:
display1/disp1.o: display1/disp1.cc
g++ -c $< -o [email protected]
display1/foo1.o: display1/foo1.cc
g++ -c $< -o [email protected]
display1/foo2.o: display1/foo2.cc
g++ -c $< -o [email protected]
把那完美的工作,然後再繼續。然後你可以用一個pattern rule取代所有這些規則:
display1/%.o: display1/%.cc
g++ -c $< -o [email protected]
把那工作......好吧,你的想法。然後,你可以寫更多的模式規則的其他目錄:
display1/%.o: display1/%.cc
g++ -c $< -o [email protected]
display2/%.o: display2/%.cc
g++ -c $< -o [email protected]
ddv/%.o: ddv/%.cc
g++ -c $< -o [email protected]
def/%.o: def/%.cc
g++ -c $< -o [email protected]
然後四個模式規則涵蓋了Java(我可能會嘗試,但我不是一個javanaut。)
然後你可以編寫目標列表並將其保存在各自的目錄中,並使用include
指令將它們拉入Install/Makefile
。
還有更多你可以做,但很多應該讓你忙一陣子。讓我們知道你是否遇到麻煩。