4
我正在嘗試僅訂購一個先決條件,以確保在輸出文件之前存在構建目錄。根據GNU Make manual:多個隱含規則,用於僅限訂單的前提條件
您可能仍然聲明的先決條件的多行的同一目標:它們被適當地追加(正常前提條件附加到正常的先決條件的列表;順序僅前提條件附加到列表中僅限訂單的先決條件)。
因此,我希望這應該工作:
BUILDDIR:=build
all: $(BUILDDIR)/test.o
clean:
rm -rf $(BUILDDIR)
$(BUILDDIR):
mkdir -p $(@)
$(BUILDDIR)/%.o: | $(BUILDDIR)
$(BUILDDIR)/%.o: %.c
gcc -o [email protected] -c $<
但它沒有,沒有創建目錄。然而,當我把規則在一行,它的工作:
$(BUILDDIR)/%.o: %.c | $(BUILDDIR)
在這個簡單的例子,也沒關係,但我需要這樣多的先決條件列出了我的更復雜的makefile,手冊使它聽起來像應該起作用。我怎樣才能做到這一點?
如果它的事項:
$ make -v
GNU Make 3.81