gex*_*ide 4 makefile gnu-make
A有一个制作目标foo/%.bar.它匹配以下文件:
foo/%.bar
foo/x/y/z.bar foo/a.bar
foo/x/y/z.bar
foo/a.bar
现在,我想要一个prereq.o必须与文件位于同一文件夹中的先决条件.bar.因此,对于foo/x/y/z.bar先决条件应该是foo/x/y/prereq.o,foo/a.bar应该是foo/prereq.o.
prereq.o
.bar
foo/x/y/prereq.o
foo/prereq.o
怎么做到这一点?
我尝试使用这样的dir功能:
dir
foo/%.bar : foo/$(dir %)prereq.o
但是,这不起作用,因为在扩展模式之前评估函数.那么它是怎样工作的?
Lou*_*uis 6
你必须使用.SECONDEXPANSION:
.SECONDEXPANSION
.SECONDEXPANSION: foo/%.bar : foo/$$(dir %)prereq.o @echo $@ $<
的$$在$$(dir...)是必要的,这样,直到第二膨胀发生它不是评估.
$$
$$(dir...)
归档时间:
11 年,1 月 前
查看次数:
504 次
最近记录: