我有一个简单的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
有谁知道我做错了什么?谢谢.
将SHELL行更改为
SHELL:=/bin/bash -O extglob
默认情况下不设置extglob选项,因此您必须自己执行此操作.