私は現在、さまざまなターゲット(デバッグ、開発、リリースなど)をコンパイルできるmakefileを作成しています。リンクとコンパイルのルールは次のようになります。
$(DEVELOPMENT_OUT): $(subst rep,development,$(OBJS))
g++ -o $(DEVELOPMENT_OUT) $(subst rep,development,$(OBJS))
obj/development/%.o: src/%.cpp
g++ -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
今、私はこの出力を取得します:
make: *** No rule to make target 'obj/development/Main.o', needed by 'bin/Development.exe'. Stop.
しかし、パターンルールはMain.oに適用されるべきではありませんか?
私GNU Make 3.82.90
はMinGWを使用しています。