0

生成文件中:

a = d:\wuyu

我的目的是得到之前的部分:。也就是说,示例中的“d”。

使用b = $(patsubst :%,,$(a))无效。变量“b”与变量“a”相同。使用

c = `echo $(a)|sed -e 's/:.*//'`

确实有效。但这导致了另一个问题:*** multiple target patterns. Stop.在执行 make 时,因为:sed 命令中有。添加\sed 不起作用。

因此,我该如何解决这个问题?

4

1 回答 1

2

patsubst 不起作用,因为您的模式:%仅匹配以冒号开头的字符串;您的字符串不以冒号开头,因此不匹配,因此不执行替换。

您可以通过将字符串拆分为多个单词来做到这一点:

b = $(firstword $(subst :, ,$(a)))
于 2013-08-16T14:31:08.777 回答