【发布时间】:2019-01-14 15:05:42
【问题描述】:
所以基于某些标准我想附加到一个变量,让我们说:
LIST += BOB
但是我可能想添加 BOB 的地方可能不止一个,所以让我们使用以下代码 sn-p:
LIST += BOB
LIST += FRED
LIST += TED
LIST += BOB
我想最终得到包含BOB FRED TED 的 LIST,所以我不想要重复的附加 BOB。我也想保留订单(否则我想我可以使用sort)。
有没有聪明的方法来做到这一点? - 我想我可以先搜索变量中的文本,但它似乎很啰嗦。那么是否有“如果不存在则追加”类型的功能?
【问题讨论】:
-
如果
LIST只是扩展 (LIST :=) 你可以只是LIST += $(filter-out $(LIST),BOB)... -
@RenaudPacalet 应该可以工作,只有 makefile 不允许我递归引用变量 LIST
-
@RenaudPacalet 等等……你刚刚更新了你的评论……让我试试
-
因为它只适用于简单的扩展变量。看我的回答。
-
@RenaudPacalet 啊酷 - 我误解了
:=。一旦你使用:=进行扩展,它(变量)是否会在其生命周期内保持简单扩展?...这是一个不错的技巧:)