我正在使用macOS的默認內置版本(如果它有任何區別)。我試圖製作一個makefile來管理單獨目錄中的超小型項目,這些目錄由其中包含makefile的另一個目錄包含。所以,與其寫出關於每個項目的信息 - 這需要永遠 - 我已經遵循模式規則。但是,無論何時在目標依賴關係中存在一個目錄,它都會變得瘋狂,並說「無法完成目標」或「目標是最新的」。例如:模式規則和目錄
%: %.c
gcc -o [email protected] $<
工作得很好。但是,如果我這樣做:
%: %/%.c
gcc -o [email protected] $<
「目標是最新的」,無論我做什麼。我試過讓它.PHONY
,並沒有結果。我甚至試着這樣做:
define FUNC
$1: $1/$1.c
gcc -o $1 $1.c
endef
%:
$(call FUNC,[email protected])
再次,沒有什麼變化,即使我讓它再次.PHONY
。 (不像.PHONY: %
,當然,像.PHONY: a
,然後我試着做make a
)爲什麼第二個例子沒有工作?有沒有解決方法?