Makefile:将多个c文件制作成多个二进制文件

时间:2014-05-03 05:59:43

标签: c makefile

我在目录中有一堆C文件(每个文件的名称都以字符program开头,例如program1.cprogram2.cprogram3.c)和我打算将每个C文件编译成各自的二进制文件(program1program2program3)。

如何编写Makefile来实现此目的,以便我可以简单地发出make来创建多个二进制文件? (使用循环而不是手动为每个c源文件声明一个make语句)

这是我的尝试: -

CFLAGS=-Wall -g 
SRCS=$(wildcard program*.c)

all:
    for F in *.c; do \
    F=$${$$F.%c}; make $$F; done

clean:
    rm -f program1
    rm -f program2
    rm -f program3

给了我一个bad subsitution错误。

1 个答案:

答案 0 :(得分:4)

PROGS := $(patsubst %.c,%,$(SRCS))

all: $(PROGS)

clean:
    /bin/rm $(PROGS)

应该这样做。