偷懒用的Makefile
关键字: 偷懒, makefile
经常写些测试的小程序,有时一个目录下N多C程序要手动编译,想着头都大,于是乎就想偷懒了,花了半小时攒了个Makefile:
CC=gcc
CFLAGS=-g
RM=rm -f
SRCS=$(wildcard *.c)
OUTS=$(patsubst %.c,%,$(SRCS))
all:$(OUTS)
$(OUTS):%:%.c
$(CC) $(CFLAGS) -o $@ $<
clean:
$(RM) $(OUTS)
其实很简单,先是设置编译的命令与编译选项,还有删除命令,紧接着通过内置的两个函数把源文件名和二进制文件存到变量中去。然后就是编译目标,默认的all依赖于所有 的二进制文件,而每个二进制文件都跳到第二个条件中,从%.c编译出来名为%的二进制文件,%是通配符,表示匹配在$(OUTS)的文件名,由于上面的设置,这里就是 不带后缀的二进制文件。最后一个用来清除已经编译出来的二进制文件。
丢到某个目录下运行,它会去找所有的.c文件,编译出二进制文件,二进制文件的文件名就是.c文件去掉扩展名。还可以单独编译单个的二进制文件,就是在make后直接 接二进制文件名。嗯,就这些了。