複数のパターン ルールがこれらの基準を満たす可能性があります。その場合、make はステムが最も短いルール (つまり、最も具体的に一致するパターン) を選択します。
ですから、次のことに驚きました。
$ touch make_specific.cpp
$ cat Makefile.general_first
%.o: %.cpp
@echo using general rule
$(CXX) -c $< -o $@
%_specific.o: %_specific.cpp
@echo using specific rule
$(CXX) -c $< -o $@
$ 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
ルールのステム (この場合は「make」) がルールのステムよりも短いため%.o : %.cpp
、特定のルールが選択されることを期待していましたが、そうではありません。
私は何が欠けていますか?