【问题标题】:How to fix Makefile syntax error when using wildcard on make clean?在 make clean 上使用通配符时如何修复 Makefile 语法错误?
【发布时间】:2011-10-18 19:52:42
【问题描述】:

我有一个简单的 Makefile,它只包含这个目标。它看起来像这样:

SHELL:=/bin/bash

clean:
    rm !(*.tex|Makefile|*.pdf)

当我在 bash 中运行此命令时,它工作正常,即它没有给出错误并且它会删除所需的文件。但是,当我运行 make clean 时,会出现以下错误:

$ make clean
rm !(*.tex|Makefile|*.pdf)
/bin/bash: -c: line 0: syntax error near unexpected token `('
/bin/bash: -c: line 0: `rm !(*.tex|Makefile|*.pdf)'
make: *** [clean] Error 1

有人知道我做错了什么吗?谢谢。

【问题讨论】:

  • 很好的语法可以清除除 Makefile 本身、乳胶源和任何生成的 pdf 之外的所有内容。

标签: bash shell makefile wildcard


【解决方案1】:

SHELL 行更改为

SHELL:=/bin/bash -O extglob

extglob 选项默认未设置,因此您必须自己设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多