g ++为头文件依赖项生成不正确的目标

时间:2015-01-26 14:00:49

标签: c++ makefile

这是一个小型C ++项目的Makefile,其中源文件(.cpp)和头文件(.o)都在" src" 。目录

BINARY          := pong
SRCS            := $(wildcard src/*.cpp)
OBJS            := ${SRCS:.cpp=.o}

DEBUG           := -g

SDL_INCLUDE     := `sdl2-config --cflags`
SDL_LIB         := `sdl2-config --libs` -lSDL2_ttf -lSDL2_mixer

CPPFLAGS        := $(SDL_INCLUDE)
CXXFLAGS        := $(DEBUG) -Wall -std=c++11
LDFLAGS         := $(SDL_LIB)

.PHONY: all clean

all: $(BINARY)

$(BINARY): $(OBJS)
    $(LINK.cc) $(OBJS) -o $(BINARY) $(LDFLAGS)

depend: .depend

.depend: $(SRCS)
    @- $(RM) .depend
    @- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MM $^ > .depend;

include .depend

clean:
    @- $(RM) $(BINARY)
    @- $(RM) $(OBJS)
    @- $(RM) .depend

一切都按预期工作,除了在生成的" .depend"包含头文件依赖关系的文件,目标(目标文件)不正确。

例如,我想:

src/main.o: src/main.cpp src/pong.hpp

而不是:

main.o: src/main.cpp src/pong.hpp

0 个答案:

没有答案