make - 来自不存在的文件的神秘错误

时间:2014-05-10 07:08:41

标签: makefile mingw

我最近尝试修改我的makefile,以便在修改标头时正确重建文件。但是,我无法让它工作 - 它会产生关于不存在的文件的神秘错误消息。

我当前的makefile如下

HEADER_FILES := $(wildcard src/*.h) $(wildcard src/*/*.h)
CPP_FILES := $(wildcard src/*.cpp) $(wildcard src/*/*.cpp)
OBJ_FILES := $(patsubst src/%.cpp,obj/%.o,$(CPP_FILES))
LD_FLAGS :=
CC_FLAGS := -Wall -fwrapv -std=c++0x -DNOMINMAX -DFLOAT_CONV -DNODEBUGLOGGING
# CC_FLAGS := -Wall -fwrapv -std=c++0x -DNOMINMAX -DFLOAT_CONV -DMUSIC

INC = src Box2D SDL-1.2.15/include SDL-1.2.15/include/SDL C:/Boost/boost_1_55_0
CC_FLAGS += $(foreach d, $(INC), -I$d)

LINK_PATHS = SDL-1.2.15/lib C:\Boost\boost_1_55_0\stage\lib Box2D\Build\Box2D
LINK = mingw32 SDLmain SDL_mixer SDL_image SDL_ttf SDL Box2d boost_system-mgw48-mt-d-1_55 boost_filesystem-mgw48-mt-d-1_55
LD_FLAGS += $(foreach d, $(LINK_PATHS), -L$d)
LD_FLAGS += $(foreach d, $(LINK), -l$d)

EXE_NAME := Pickory/Pickory.exe

depend: .depend

.depend: $(HEADER_FILES) $(CPP_FILES)
    g++ $(CC_FLAGS) -MM $^>>./.depend;

include .depend

# main.exe: $(OBJ_FILES)
$(EXE_NAME): $(OBJ_FILES)
    g++  -o $@ $^ $(LD_FLAGS)

obj/%.o: src/%.cpp
    -mkdir $(subst /,\,$(dir $@))
    g++ $(CC_FLAGS) -c -o $@ $<

run: $(EXE_NAME)
    (cd Pickory && $(notdir $(EXE_NAME)))
.PHONY: run

但是,依赖目​​标正在生成错误消息

g++: error: src/CommonEntities/defaltgun.cpp: No such file or directory
g++: error: src/TutorialTunnel/roomdef_tt.cpp;: No such file or directory
makefile:21: recipe for target '.depend' failed
mingw32-make: *** [.depend] Error 1

这很奇怪,因为没有这样的&#34; defaltgun&#34;文件,事实上,&#34; defaltgun&#34;在整个源代码中没有出现。会发生什么事?我该如何修复我的makefile?

P.S。 .depend文件为空。所以可能gcc并没有正确地生成依赖关系。

0 个答案:

没有答案