10
我有這樣的:GNU Make:如何加入列表並用分隔符分隔它?
FOO = foo1 foo2 ... fooN
,並希望得到參加所有這些字符串,並將其與分離,例如,COLONG:
foo1:foo2:foo3:...:fooN
如何在GNU做到這一點做,而無需使用外部UNIX工具?
我有這樣的:GNU Make:如何加入列表並用分隔符分隔它?
FOO = foo1 foo2 ... fooN
,並希望得到參加所有這些字符串,並將其與分離,例如,COLONG:
foo1:foo2:foo3:...:fooN
如何在GNU做到這一點做,而無需使用外部UNIX工具?
請參閱下面的代碼。
# A literal space.
space :=
space +=
# Joins elements of the list in arg 2 with the given separator.
# 1. Element separator.
# 2. The list.
join-with = $(subst $(space),$1,$(strip $2))
用法:
FOO = foo1 foo2 ... fooN
COLON_SEPARATED_FOO := $(call join-with,:,$(FOO))
你可以簡單的用冒號替換空格:
EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
FOO = foo1 foo2 ... fooN
FOO_LIST = $(subst $(SPACE),:,$(FOO))
FOO_LIST
是foo1:foo2:...:fooN
。
爲什麼不只是'FOO_LIST = $(subst $(SPACE),:,$(FOO))'? – Beta 2012-03-04 02:03:53
@貝塔好點。糾正。 – 2012-03-04 02:07:31