【发布时间】:2013-11-13 19:25:43
【问题描述】:
我对编写 make 文件比较陌生,可以使用一些指针。我想要实现的可能是相当基本的,但在搜索网络后我无法理解如何实现。
我想将 src 目录中的一组目标文件编译到构建目录中,我天真的想法是将源文件集定义为宏,使用宏修饰符为目标文件创建一个宏(所以这些在重新编译时与源文件进行了适当的比较。我当前创建目标文件宏的方案如下:
SRCDIR = /some/dir/
BUILDDIR = /some/dir/
CSRC = \
$(SRCDIR)f1.c \
$(SRCDIR)f2.c \
OSRC = $(CSRC,.c=.o,F,<$(BUILDDIR))
all:
@echo $(OSRC)
简单地放入所有规则以检查目标文件宏是否设置正确。不幸的是,它不是,而是空的。更换
OSRC = $(CSRC,.c=.o,F,<$(BUILDDIR))
通过
OSRC = $(CSRC:.c=.o)
确实给了我一个目标文件的宏,但没有正确的目录。因此,对于如何修改我的文件以获得我想要的东西的见解将不胜感激。 (我使用的是 GNU Make 3.82)
【问题讨论】:
标签: macros path makefile substitution modifiers