我使用带有表达式的makefile编译我的项目
g++ -c a.cpp b.cpp c.cpp
有没有简单的方法来定义一个会递增每个文件的宏? (例如,0,b 1,c 2)
毋庸置疑,但是项目包含无数文件和数量变化,所以硬编码任何东西都是不可能的。
答案 0 :(得分:0)
您尝试做的事情并不是很清楚,但是应该可以用bash命令替换它:
%.c:
@#do nothing
all: depA.c depB.c depC.c
echo `i=0; for f in $^; do echo $$f; echo $$i; i=$$((i+1)); done`
会输出
echo `i=0; for f in depA.c depB.c depC.c; do echo $f; echo $i; i=$((i+1)); done`
depA.c 0 depB.c 1 depC.c 2
如果您正在处理变量列表,您当然可以将$^
替换为另一个变量。
约翰