私は見て、この質問に関連しているように見えるいくつかの回答を見つけましたが、どれも役に立たないようです.
これはよくある話です。.o ファイルにコンパイルしたい .hpp および .cpp ファイルのフォルダーがあり、依存するファイルが変更されたときにのみファイルを再コンパイルします。
私の現在のメイクファイルは次のとおりです。
SRCS = $(shell find ../Includes/ -name "*.cpp")
DEPS = $(SRCS:.cpp=.d)
OBJS = $(SRCS:.cpp=.o)
all: $(DEPS) $(OBJS)
# Create the dependency files
%.d : %.cpp
clang++ -MM $< -o $@ -c -std=c++11
# Include the dependency files
include $(DEPS)
# Compile the source files
%.o : %.cpp
clang++ -c -Wall -std=c++11 $< -o $@
これを数回実行しました (そのため、make を実行する前に依存関係ファイルが存在し、それらを含めると必ず存在するはずです)。また、%.o の依存関係に %.d を追加しようとしました。
基本的に、現時点で起こっていることは、.cpp を「タッチ」すると .o および .d ファイルが再生成され、.hpp ファイル (他のファイルの .d ファイルにリストされている) をタッチしても何も起こらないということだけです。
依存関係ファイルの例:
SomeFile.o : ../Includes/SomeFile.cpp \
../Includes/SomeFile.hpp ../Includes/SomeOtherFile.hpp