"$(@:H)"在MakeFile中做了什么?

Swa*_*mmy 5 makefile

我今天午餐时和一位实习生谈话,他今年夏天几乎只在Makefile工作,他提到他不知道$(@:H)是什么意思或做什么.我的google-fu让我失望了,因为我无法在网络上的任何地方找到它,并且希望你们可以帮助我.

Eta*_*ner 3

假设这是 GNU make 那么这只是(奇怪的名字)变量的扩展@:H。这不是默认变量(也不是可以使用正常赋值语法设置的变量),并且对于变量名来说是一个奇怪的选择,因为它非常接近真正的变量扩展。

这更有可能是指 BSD make where:H是一个变量修饰符which(摘自手册页):

:H

将变量中的每个单词替换为除最后一个组成部分之外的所有内容。