GNU Makefile替换参考问题:两次使用%

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

我正在尝试使用GNU Make的替代参考,但是我需要在替代中两次引用%。而且它没有按我预期的方式工作。这是我的Makefile:


foo := io protocol util
bar := $(foo:%=../Lib%/obj/lib%.a)

default: ; @echo bar = $(bar)

我想结束于:

bar = ../Libio/obj/libio.a ../Libprotocol/obj/libprotocol.a ../Libutil/obj/libutil.a

但是这就是我最终得到的:

../Libio/obj/lib%.a ../Libprotocol/obj/lib%.a ../Libutil/obj/lib%.a```

I've read the GNU Make reference manual, and I don't see any mention or examples of using % twice in one statement. I don't even know if it is possible.

Any help would be greatly appreciated.

makefile gnu-make
1个回答
0
投票

正如您通过阅读手册发现的那样,无法两次使用该模式。仅扩展第一个字符:其余仅被视为文字字符。

您可以改用foreach功能:

bar := $(foreach F,$(foo),../Lib$F/obj/lib$F.a)
© www.soinside.com 2019 - 2024. All rights reserved.