使用For循环填充Makefile变量

时间:2014-08-22 18:26:23

标签: c++ makefile

我有args.cpp/houtput.cpp/hcomputation.cpp/h个文件。我想将它们的目标文件和它们的头文件用作依赖项。

我试图通过创建一个只包含其基本名称的makefile变量来最小化代码重复,然后分别使用它们的目标文件名和头文件名填充另外两个makefile变量。

这是我到目前为止所做的尝试,没有结果:

BASES = args output computation
OBJS =
CODE =
for base in $(BASES); do \
    OBJS += $$base.o ; \
    CODE += $$base.h ; \
done;

我是否以正确的方式接近这个?如果是这样,我该如何修复for循环?如果没有,我应该使用什么makefile方法来消除代码重复?

1 个答案:

答案 0 :(得分:2)

这是shell和make的混合,并且不能以这种方式工作。如果你真的想要,你可以沿着这些方向做一些事情,但没有理由这样做。

BASES = args output computation
OBJS = $(addsuffix .o,$(BASES))
CODE = $(addsuffix .h,$(BASES))

CODE = args.h output.h computation.h
OBJS = $(CODE:.h=.o)