【问题标题】:GNU Make: how to join list and separate it with separator? [duplicate]GNU Make:如何加入列表并用分隔符分隔它? [复制]
【发布时间】:2012-03-22 00:37:09
【问题描述】:

我有这个:

FOO = foo1 foo2 ... fooN

并希望加入所有这些字符串并将其分隔,例如,冒号:

foo1:foo2:foo3:...:fooN

如何在 GNU Make 中做到这一点,而不使用外部 UNIX 工具?

【问题讨论】:

标签: string join makefile concatenation separator


【解决方案1】:

请看下面的代码。

# 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))

【讨论】:

    【解决方案2】:

    您可以简单地用冒号替换空格:

    EMPTY :=
    SPACE := $(EMPTY) $(EMPTY)
    FOO = foo1 foo2 ... fooN
    FOO_LIST = $(subst $(SPACE),:,$(FOO))
    

    FOO_LISTfoo1:foo2:...:fooN

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-11
      • 2015-02-11
      • 1970-01-01
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      相关资源
      最近更新 更多