这是一个小型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