我有args.cpp/h
,output.cpp/h
和computation.cpp/h
个文件。我想将它们的目标文件和它们的头文件用作依赖项。
我试图通过创建一个只包含其基本名称的makefile变量来最小化代码重复,然后分别使用它们的目标文件名和头文件名填充另外两个makefile变量。
这是我到目前为止所做的尝试,没有结果:
BASES = args output computation
OBJS =
CODE =
for base in $(BASES); do \
OBJS += $$base.o ; \
CODE += $$base.h ; \
done;
我是否以正确的方式接近这个?如果是这样,我该如何修复for循环?如果没有,我应该使用什么makefile方法来消除代码重复?
答案 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)