1 target foo : src = foo.c
2 target foo : obj = foo.o
3 target bar : src = bar.c
4 target bar : obj = bar.o
5 foo bar: obj # problem - not recognizing obj!
6 @echo link ${bin}
7 @gcc command to link ${obj}
8 foo.o bar.o
9 @echo compile ${src}
10 @gcc command to compile ${src}
因此,目标特定变量对于第6,7,9和6行中使用的目标配方是很好的。 10.但是,有没有一种方法可以像第5行一样在目标规则本身中引用目标特定变量“obj”?我在想,但我需要一些伏都教符号来引用它。无法相信我无法在任何地方找到这个答案。提前谢谢!
答案 0 :(得分:3)
.SECONDEXPANSION:
foo bar: $$(obj)
...
答案 1 :(得分:2)
我认为您需要先决条件,而不是针对特定变量:
foo : foo.o
bar : bar.o
foo bar :
gcc -o $@ $^ ${LDFLAGS } ${LDLIBS}
# use the default rule for .c to .o
请注意,$^
会扩展到所有先决条件的列表。