14
很可能有不止一個形式規則,將符合這些標準。在這種情況下,make會選擇最短的規則(也就是最具體匹配的模式)。
所以它讓我感到驚訝的是:
$ touch make_specific.cpp
$ cat Makefile.general_first
%.o: %.cpp
@echo using general rule
$(CXX) -c $< -o [email protected]
%_specific.o: %_specific.cpp
@echo using specific rule
$(CXX) -c $< -o [email protected]
$ make -B -f Makefile.general_first make_specific.o
using general rule
g++44 -c make_specific.cpp -o make_specific.o
多模式規則與目標匹配,而且由於乾的%_specific.o : %_specific.cpp
規則(在這種情況下,「讓」)比杆爲%.o : %.cpp
短規則,我預計要選擇具體規則,但事實並非如此。
我錯過了什麼?
感謝。我使用3.81,所以這很可能是原因。等待系統管理員安裝3.82進行驗證。 – 2012-07-16 15:10:05
有沒有辦法用clearmake而不是GNU make來實現這一點?我無法找到clearmake中有關模式規則選擇的任何信息... – dragonator 2017-03-29 13:46:18
謝謝。我試圖理解爲什麼會發生這種事。我的錯;我從未注意到我使用的版本號:) – Fernando 2018-01-26 16:26:53