0

我对具有给定扩展名的文件有一个通用规则,但我想为具有前缀的文件添加特殊情况。我试过这个:

special-%.dat: special-%.raw
    echo "Running rule 1"

%.dat:
    echo "Running rule 2"

但是当我运行时make special-1.dat,它会忽略第一条规则并运行第二条。切换规则的顺序没有区别。我怎样才能解决这个问题?

4

1 回答 1

2

文件是否special-1.raw存在?如果该文件不存在(并且您没有可以创建它的规则)make 将永远不会选择此规则,因为先决条件不可用。这本身并不是一个错误:只有当 make 找不到可以构建此目标的规则时,它才会失败。

运行make -d将准确地向您展示 make 如何递归地考虑每个目标及其先决条件。

于 2013-04-25T19:41:57.663 回答