均是根据《跟我一起写Makefile》写的,只不过是具体解释
- 关于Makefile的单后缀,也就是
相当于.c: $(CC) -c $< $(CFLAGS) $(INCDIRS)
我的机器(Suse Linux)没法执行第一种方案,只能扩展成第二种来写了%:%.c $(CC) -c $< $(CFLAGS) $(INCDIRS)
- 双后缀
相当于.o.c: $(CC) -c $< $(CFLAGS) $(INCDIRS)
当然,如果改成%.o:%.c: $(CC) -c $< $(CFLAGS) $(INCDIRS)
就相当于.cpre.c: $(CC) -c $< $(CFLAGS) $(INCDIRS)
一定要注意第二种方案后面没有冒号%.cpre:%.c $(CC) -c $< $(CFLAGS) $(INCDIRS)
- 对于$<和$@
假设存在一个test.cpre.c文件,那么$<表示test.cpre.c而不是test.cpre,$@表示test.cpre.o.o.c: $(CC) -c $< $@ $(CFLAGS) $(INCDIRS)