Makefile单后缀,双后缀,以及$@的意.

均是根据《跟我一起写Makefile》写的,只不过是具体解释


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

猜你喜欢

转载自blog.csdn.net/deng529828/article/details/69554823