【发布时间】:2013-06-09 19:55:03
【问题描述】:
我在过去 2 年左右的时间里一直在编程,我终于“摆脱了控制台”,但是当我这样做时,我也想独立于 IDE,因此,我一直学习制作,但这是一个我似乎无法找到有关“vpath”的答案的问题
这是我的生成文件:
vpath %.o obj
vpath %.cpp src
vpath %.h inc
EXE = SDL_Game.exe
OBJS = SDL_Game.o Init.o EventHandler.o
INCDIR = -I"C:\SDL-1.2.15\include" -Iinc
LIBDIR = -L"C:\SDL-1.2.15\lib"
LIBS = -lmingw32 -lSDLmain -lSDL
CFLAGS = $(INCDIR) -Wall
LDFLAGS = $(LIBDIR) $(LIBS) -Wall -mwindows
all: $(EXE)
$(EXE): $(OBJS)
g++ -o bin/$@ $^ $(LDFLAGS)
%.o: %.cpp
g++ -o obj/$@ -c $< $(CFLAGS)
SDL_Game.o: SDL_Game.h
Init.o: SDL_Game.h
EventHandler.o: SDL_Game.h
.PHONY: clean
clean:
rm -f bin/* obj/*
当我第一次使用 make 时,我得到了这个结果:
C:\...\SDL_Test>make
g++ -o obj/SDL_Game.o -c src/SDL_Game.cpp -I"C:\SDL-1.2.15\include" -Iinc -Wall
g++ -o obj/Init.o -c src/Init.cpp -I"C:\SDL-1.2.15\include" -Iinc -Wall
g++ -o obj/EventHandler.o -c src/EventHandler.cpp -I"C:\SDL-1.2.15\include" -Iin
c -Wall
g++ -o bin/SDL_Game.exe SDL_Game.o Init.o EventHandler.o -L"C:\SDL-1.2.15\lib" -
lmingw32 -lSDLmain -lSDL -Wall -mwindows
g++.exe: error: SDL_Game.o: No such file or directory
g++.exe: error: Init.o: No such file or directory
g++.exe: error: EventHandler.o: No such file or directory
make: *** [SDL_Game.exe] Error 1
我需要再次使用 make 来让程序链接。这是为什么 ? 我不应该使用“vpaths”吗 这也是我在第二次制作时得到的:
C:\...\SDL_Test>make
g++ -o bin/SDL_Game.exe obj/SDL_Game.o obj/Init.o obj/EventHandler.o -L"C:\SDL-1
.2.15\lib" -lmingw32 -lSDLmain -lSDL -Wall -mwindows
(成功)
【问题讨论】:
-
第一个
make在SDL_Test开始,第二个在SDL_My_Way,这样对吗? -
我的错误,已编辑
标签: c++ makefile mingw sdl vpath