将索引宏传递给已编译的模块

时间:2015-03-28 23:18:00

标签: c++ gcc makefile g++

我使用带有表达式的makefile编译我的项目 g++ -c a.cpp b.cpp c.cpp 有没有简单的方法来定义一个会递增每个文件的宏? (例如,0,b 1,c 2)

毋庸置疑,但是项目包含无数文件和数量变化,所以硬编码任何东西都是不可能的。

1 个答案:

答案 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

如果您正在处理变量列表,您当然可以将$^替换为另一个变量。

约翰