请说明该目标如何扩展?
PROJECT=helloworld
TARGET = $(PROJECT:=.so)
例如,我生成了helloworld.so.1.2.3,helloworld.so.1和helloworld.so
答案 0 :(得分:3)
这将使注释变得混乱,在此示例中,从docs重复了该描述。对于:
PROJECT=helloworld
TARGET = $(PROJECT:=.so)
$(TARGET)
的值为helloworld.so
。由于单词末尾的空字符串''
将被.so
替换。这个“单词结尾”与以下内容的区别:
TARGET = $(PROJECT).so
在PROJECT
为helloworld
的情况下,结果值看起来相同,但调用make PROJECT="hello world"
,如果是前者,则最终得到hello.so
和{{1 }}在world.so
中,对于后者,它将是TARGET
。或引用文档:
"hello world.so"
...将单词末尾的每个$(var:a=b)’
替换为a
...“单词末尾”,我们的意思是b
必须被替换,必须在空格后或空格末尾出现