GNU为多个目标制定规则

Tom*_*arp 4 makefile

我试图让GNU make从单个输入产生多个输出.我能证明的最简单的例子是:

a b : test
    cp $< $@
Run Code Online (Sandbox Code Playgroud)

我认为应该将文件复制test到文件名ab.但是,它只会使文件a在我看来与此处列出的说明相反:

http://www.gnu.org/software/automake/manual/make/Multiple-Targets.html

难道我做错了什么?

谢谢,汤姆

Mic*_*zek 9

如果您运行依赖的规则a,它将使用$<as test$@as 运行您的规则a.如果您运行依赖于的规则b,$@则会b改为.如果您制定的规则高于当前规则,例如:

all: a b
Run Code Online (Sandbox Code Playgroud)

它将运行规则ab,这是同样的规则两次.否则,如果您的规则是文件中的第一个,它将仅使用第一个目标运行它,即a