我正在尝试使用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.
正如您通过阅读手册发现的那样,无法两次使用该模式。仅扩展第一个字符:其余仅被视为文字字符。
您可以改用foreach
功能:
bar := $(foreach F,$(foo),../Lib$F/obj/lib$F.a)