有没有办法在make
中删除字符串中的前缀(在我的例子中是路径名)?
举个例子,假设我有字符串:
FILES = a/b/c.d a/b/e.f
我想删除a/
,并留下b/c.d b/e.f
我尝试使用GNU make manual中的dir
,notdir
和basename
的各种组合,但似乎都没有提供一个很好的解决方案。
$(dir $(FILE)) # a/b a/b
$(notdir $(FILE)) # c.d e.f
$(basename $(FILE)) # a/b/c a/b/e
到目前为止,我发现这样做的唯一方法是:
$( join $(basename $(dir $(FILE))), $(notdir $(FILE)) )
这真的很丑陋而且啰嗦。我真正需要的是某种$(removeprefix ...)
函数。假设我知道要删除的前缀(a/
),可以通过某种字符串操作来完成吗?
答案 0 :(得分:53)
答案 1 :(得分:16)
既然你说GNU make,为什么不呢:
$(FILE:a/%=%)