假设这是GNU make,那么它只是(奇怪地命名的)@:H变量的扩展。它不是默认变量(也不是可以用正常赋值语法设置的变量),而且作为一个变量名的选择非常奇怪,因为它非常接近真实的变量扩展。更有可能的是,这是指BSD make,其中:H是一个变量修饰符,它(摘自man页面): :H 将变量中的每个单词替换为除最后一个组件外的所有内容。
@:H
的make变量,这不是我所知道的默认变量。因此,除非在某个地方定义,否则应该会扩展为空字符串。你确定这是你/他看到的语法吗?而不是$(@D)
或$(@:H=c)
或类似的语法? - Etan Reisner