【发布时间】:2023-03-24 20:45:01
【问题描述】:
我有一个 GNU make 项目的“字典”。
MY_KEYS:=foo bar baz
foo_VALUE:=thing1
bar_VALUE:=thing2
baz_VALUE:=thing3
我希望将这个项目字典输出到一个文件中,使其看起来像这样......
foo=thing1
bar=thing2
baz=thing3
难度:“真正的”字典只有几 kb 大小,在 Windows 上已超出命令行限制。
我当前的低效实现最终生成了太多的 sh.exe 进程,并且最终需要将近 20 秒才能发出仅几 kb 的数据。
#Slow implementation
define NEWLINE
endef
list.txt:
@printf '' > $@
@$(foreach key,$(MY_KEYS), \
printf '$(key)=$($(key)_VALUE)\n' >> $@ $(NEWLINE) )
$(file) 函数在 GNU make 3.81 中也不可用,因为那将是“显而易见的”修复。
【问题讨论】: