14
鉴于路径的冒号分隔的列表,掌握GNU空格分隔的列表中进行很简单:GNU做转换空间,以冒号
CPATHS := /usr/bin/foo:/usr/bin/baz:/usr/bin/baz
SPATHS := $(subst :, ,$(CPATHS))
但是,我无法找到一个很好的方式,走相反的方向。下面的技巧不工作(至少如果sed的安装),但我敢肯定会有解决这个只是用让的内部功能的更好的方式。
SPATHS := /usr/bin/foo /usr/bin/baz /usr/bin/baz
CPATHS := $(shell echo $(SPATHS) > tmp; sed 's/ \+/:/g' tmp; rm tmp)
我更愿意用'空:=''然后空间:= $(空)$(空)'。只是更清楚一点,不依赖于副作用。但两者都可以。 – MadScientist
很酷,谢谢。我想我会使用'SPACE:= $(eval)$(eval)'来获得一个空间标记。我以为'subst'是单独操作单词,因此看不到它们之间的空格。 – 5gon12eder
另一种选择是使用'space:= $(subst ,,)'。 –