有没有办法从 make 中的变量获取目录部分?

有没有办法从 make 中的变量获取目录部分?

我有 makefile,其中定义了一些库及其路径:

MY_LIB= dir/lib

现在我知道我可以使用 @D 从目标获取目录部分:

#This will go to dir
$(MY_LIB):
    cd $(@D)

但我想在其他目标中使用 MY_LIB 的目录部分:

$(TARGET):
    doSomething $(INSERT_MY_LIB_DIR_HERE)

我怎样才能做到这一点?

答案1

你有$(basename $path)for filename 和$(dir $path)for dir 组件

答案2

如果您使用 Linux,很可能您正在使用 GNU make。那有一个dir功能。所以你可以有这样的规则

$(TARGET):
    doSomething $(dir $(MY_LIB))

(未发现于POSIX 使——其他实现可能有类似的扩展)。

相关内容