Makefile用于编译以模式开头的文件

时间:2013-05-28 19:23:42

标签: makefile design-patterns

我的makefile有这一行:

OBJS = Test.o Test1.o Test2.o Test3.o ...

有没有办法通过匹配模式使其自动化?

2 个答案:

答案 0 :(得分:0)

如果您使用gmake - 您可以使用shell命令来查找源文件,然后使用patsubst命令将源文件列表转换为目标文件列表。

SRC=$(shell ls *.cc)
OBJS=$(patsubst %.cc,%.o, $(SRC))

all:
     @echo $(OBJS)

答案 1 :(得分:0)

我怀疑你所要求的是你真正想要的东西,但这里有:

NUMS := 1 2 3 4 5

OBJS := Test.o $(patsubst %,Test%.o,$(NUMS))

(有一种方法可以生成像1 2 3 4 5这样的序列而不用拼写出来,但它真的很难看,不值得付出努力。)