GNU Make を使用した C++ の小さなプロジェクトがあります。次のソース ファイルを有効にしたいと考えています。
src/
a.cpp
b/
b.cpp
c/
c.cpp
次の出力構造に変換します (この時点では重複については気にしません)。
build/
a.o
b.o
c.o
残念ながら、.o と .d を各 .cpp のすぐ隣に置きます。
OBJS := $(foreach file,$(SRCS),$(file).o)
DEPS := $(patsubst %.o,%.d,$(OBJS))
sinclude $(DEPS)
$(OBJS) : %.o : %.cpp
@echo Compiling $<
$(CC) $(CC_FLAGS) $(INCS) -MMD -o $@ $<
私は $(notdir ...) 関数を認識していますが、この時点でそれを使用してオブジェクトをフィルタリングしようとする試みは失敗に終わりました。誰でもこれに光を当てることができますか?それはかなり合理的なことのように思えます。