有沒有辦法從 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 使——其他實作可能有類似的擴展)。

相關內容