我是使用make的新手,並通過this tutorial瞭解了基礎知識。下面是本教程的最後一個例子生成文件例如:Makefile頭依賴關係
IDIR =../include
CC=gcc
CFLAGS=-I$(IDIR)
ODIR=obj
LDIR =../lib
LIBS=-lm
_DEPS = hellomake.h
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))
_OBJ = hellomake.o hellofunc.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
$(ODIR)/%.o: %.c $(DEPS)
$(CC) -c -o [email protected] $< $(CFLAGS)
hellomake: $(OBJ)
gcc -o [email protected] $^ $(CFLAGS) $(LIBS)
.PHONY: clean
clean:
rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~
這應該做工精細假設所有.c文件只包括hellomake.h,但如果每個.c文件中包括不同的頁眉這是行不通的。是否有可能編寫知道每個.c文件中包括一個makefile,所以我沒有去和做手工,如:
foo.o: foo.c something.h
...
bar.o: bar.c somethingelse.h
...
,因爲這似乎是這將是一個巨大的浪費時間。
的[Makefile文件,標題依賴性(http://stackoverflow.com/questions/2394609/makefile-header-dependencies) –