【问题标题】:Makefile target with multiple dependencies具有多个依赖项的 Makefile 目标
【发布时间】:2012-02-08 19:48:57
【问题描述】:

我有一个小脚本,可以将 Markdown 文件编译成 html,并将其插入到模板的正文中,以及一些样式表和 javascript。我有一个 GNU makefile 来完成这个:

output.html: content.md compile.py style.css script.js
    python compile.py < $< > $@

当我运行它时,我得到了错误:

make: * 没有规则来制作目标style.css', needed byoutput.html'。停下来。

如果我删除 compile.pystyle.cssscript.js,目标会运行,但它不再依赖于文件,所以我可以在 style.css 中进行更改,它不会重新- 运行目标。

所有这些文件都在同一个目录中:

my_project_directory/
    content.md
    compile.py
    style.css
    script.js

如何将所有这些文件声明为依赖项而不导致错误?

【问题讨论】:

    标签: makefile gnu-make


    【解决方案1】:

    你告诉 make output.html 需要 style.css,但是 style.css 文件在当前目录中不存在并且你没有告诉 make 如何创建它。指定style.css(和其他文件)的真实位置,依赖将起作用。

    【讨论】:

    • 哦,但是 style.css 文件确实存在于当前目录中。依赖列表中给出的位置相对于 Makefile 的目录是正确的。
    • 您的编译脚本显然知道如何查找文件,但 make 不知道。该错误消息没有其他原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2012-12-09
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多