0
問題是我想在一個變量中集中一些依賴項,但依賴項本身包含在變量中。GNU make:嵌套變量中的規則前提未執行
a=meow
b=squeek
$(a):
touch [email protected]
$(b):
touch [email protected]
targs=$(a) $(b)
all: $(targs)
在真實的情況下,a和b的規則不同,所以我需要它們在不同的目標中。
當我試圖建立這樣一個目標,只有最後一個嵌套的依賴被執行:
$ make
touch meow
$ ls
. .. Makefile meow
誰能請解釋我如何解決的情況或者我錯了? 我可以製作一個像targs這樣的假目標:$(a)$(b),但是如果有一種方法可以保留我提到的結構,我想知道它。
提前致謝!
UPD:解決。我的錯誤:而不是運行make all
我跑make
並執行第一個目標而不是all
。
爲我工作的地方使用下面的行。是否在收到$(b)'時檢查了縮進問題(空格而不是製表符)? – Tsyvarev
@Tsyvarev,我的錯。我正在運行'make',它運行了第一條規則,即$(a)。 當我運行'make all'時,它工作正常。 –
哦,你使用'make'與* default * target,但默認目標是makefile中列出的第一個目標。嘗試'make all'或將all規則移到makefile中的其他位置。 – Tsyvarev