我的Makefile中无法识别{a,b}形式的目标

问题描述 投票:0回答:1

我有以下makefile:

SHELL:/bin/bash

all: euro.n.{a,b}

euro.{a,b}:
        touch euro.{a,b}

euro.n.{a,b}: euro.{a,b}
        cat euro.a > euro.n.a
        cat euro.b > euro.n.b

现在,如果我两次运行make,则生成文件不会在第二次运行中识别出文件euro.n.a和euro.n.b已经创建(并且将再次执行)。

怎么了?

bash makefile gnu-make
1个回答
0
投票

怎么了?

{a,b}是GNU make无法识别的语法。

[SHELL := /bin/bash(在那里您错过了=)仅影响食谱的语法。


一种替代解决方案:

SHELL := /bin/bash

all: $(addprefix euro.n.,a b)

euro.%:
        touch $@

euro.n.% : euro.%
    cp $< $@
© www.soinside.com 2019 - 2024. All rights reserved.