And*_*zie 9 makefile cartesian-product gnu-make
使用GNU-make,假设我的Makefile中有两个列表,并且我想将它们组合起来以将其笛卡尔积作为另一个列表,以便我可以将其用作目标列表.
作为一个我不太清楚的语言的例子,R有一个函数expand.grid()可以实现这个目的.
我实际上想出了一种使用Makefile执行此操作的方法:
.PHONY: all
prefix := 1 2
base := A B
add_prefix = $(addsuffix $(base), $(prefix))
Obj = $(foreach base, $(base), $(add_prefix))
all:
@echo $(Obj)
Run Code Online (Sandbox Code Playgroud)
但是,这非常hacky并且不以直观的方式使用addsuffix功能.有没有更好的方法呢?
Mad*_*ist 11
为什么不在两个循环中进行?
obj := $(foreach X,$(prefix),$(foreach Y,$(base),$X$Y))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |