制作文件don'找不到规则



我在一个Jekyll项目中使用以下makefile:

project = jekyll-template-repository
e:          execute
execute:
bundle
build

r:          run
run:
jekyll serve -l -o -b /$(project)

b:          build
build:      clean
jekyll build
c:          clean
clean:
jekyll clean

当我运行make execute时,它会向我抛出错误make: build: Command not found

我想它正试图将其作为一个通用的bash命令来执行,但我想调用我在文件中编写的build规则。当其他make规则不在另一个规则:之后时,是否需要一些特殊的语法来指向它们?

您不能在makefile中"调用"规则。规则不是函数。您可以依赖目标,在这种情况下,该目标将是最新的,然后才能被视为最新的。

事实上,规则的每个配方都是一个shell脚本。它从来都不是其他目标的清单。

你可以写:

execute: build

则它将首先执行build目标的配方(假设它不是最新的(,然后它将执行execute目标的配方。

最新更新