【发布时间】:2021-09-03 11:33:56
【问题描述】:
我在 EC2 实例上使用此 Amazon Linux 2 AMI:amazon/amzn2-ami-hvm-2.0.20210525.0-x86_64-gp2
这个 Makefile 工作正常:
.SHELLFLAGS := -euo pipefail -c
SHELL := bash
all:
echo here
当我运行make all 时,我得到:
bash-4.2$ make all
echo here
here
然后我将.ONESHELL: 添加到 Makefile:
.ONESHELL:
.SHELLFLAGS := -euo pipefail -c
SHELL := bash
all:
echo here
现在当我运行 make all 时,我得到:
bash-4.2$ make all
echo here
bash: line 0: bash: echo here: invalid option name
make: *** [all] Error 2
Bash 版本:
GNU bash, version 4.2.46(2)-release (x86_64-koji-linux-gnu)
制作版本:
GNU Make 3.82
Built for x86_64-koji-linux-gnu
如果我删除.SHELLFLAGS,它将成功运行,所以看起来这两者的结合就是问题所在。使用 ONESHELL,SHELLFLAGS 似乎也被破坏了。
【问题讨论】:
-
不知道;那个版本的 GNU make 已经很老了。使用当前版本的 GNU make 对我来说工作正常。也许尝试一些新的东西?
标签: bash makefile amazon-ami amazon-linux-2