GNU Makefile 替换引用问题:使用 % 两次
GNU Makefile substitution reference issue: using % twice
我正在尝试使用 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)
我正在尝试使用 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)