.C または .cc 拡張子を使用する C++ ファイルの Makefile には暗黙の規則があります。しかし、通常、C++ ソースのファイル拡張子は .cpp です。
.cpp ファイルで Makefile の暗黙のルールを使用するには?
暗黙のルールのカタログを参照してください:
C++ プログラムのコンパイル
no は、'$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c' の形式のレシピを使用して、n.cc、n.cpp、または nC から自動的に作成されます。C++ ソース ファイルには、'.C' の代わりに '.cc' のサフィックスを使用することをお勧めします。
これはGNU make docsからのものです。
パターン ルールの前提条件の '%' は、ターゲットの '%' と一致した同じ語幹を表します。パターン ルールを適用するには、そのターゲット パターンが検討中のファイル名と一致する必要があり、すべての前提条件 (パターン置換後) が存在するか作成できるファイルの名前である必要があります。これらのファイルは、ターゲットの前提条件になります。したがって、フォームのルール
%.o : %.c ; recipe...
nc が存在するか作成できる場合に、別のファイル nc を前提条件として、ファイルを no にする方法を指定します。
だからあなたは似たようなことを試すことができます
%.o : %.cpp %.hpp
$(CC) $(CFLAGS) $@