2015-10-15 78 views
1
# Compiler to use 
CC = g++ 

# flags to pass compiler 
CFLAGS = -ggdb3 -O0 -std=c99 -Wall -Werror 

# Name for the executable 
EXE = test 

# space-separated list of header files 
HDRS = simplegui.h globals.h timer.h tile.h gamesprites.h 

# space-separated list of libraries, if any, 
# each of which should be prefixed with -l 
LIBS = -lSDLmain -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf 

# space-separated list of source files 
SRCS = main.cpp gamesprites.cpp simplegui.cpp tile.cpp timer.cpp 

# automatically generated list of object files 
OBJS = $(SRCS:.cpp=.o) 

# default target 
$(EXE): $(OBJS) $(HDRS) Makefile 
    $(CC) -IC:\SDL-1.2.15\include -LC:\SDL-1.2.15\lib $(CFLAGS) -o [email protected] $(OBJS) $(LIBS) 

# dependencies 
$(OBJS): $(HDRS) Makefile 

它不能與makefile一起使用。我的另一種方法是:如何編譯g ++多個文件(它不適用於我)

g++ -IC:\SDL-1.2.15\include -o test main.cpp -LC:\SDL-1.2.15\lib -lSDLmain -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer 

它的工作開始,我不知道我變了,沒有它是不行的,它不斷地說,它並沒有找到該目錄。以前它確實找到了目錄,但是向我大吼大叫依賴關係。我很沮喪找不到答案。如何編譯一個包含許多.h .cpp文件的程序,並且在其他目錄中包含.h文件?這兩種方法我發現,工作......(不過,我可以用我的IDE被配置編譯代碼,但我不記得了,我很快就會格式化我的電腦

編輯:

enter image description here

enter image description here

enter image description here

編輯:更改\爲/,現在我有這樣的:

enter image description here

+0

++命令你的摹給了看似合理,乍看之下。你能澄清你遇到的一些問題嗎? 「它一直告訴我,它沒有找到目錄」 - 它找不到哪個目錄?你有沒有檢查目錄是否存在? –

+0

是的,該目錄存在。這就是我在IDE中配置編譯器和鏈接器的方式。但我需要知道如何從命令行或使用makefile進行編譯。它一直告訴我它沒有找到「SDL/SDL.h」。但是,在我的電腦C:\ SDL-1.2.15 \ include中包含SDL文件夾,其中SDL.h與鏈接器目錄相同。當我可以「編譯」時,它只是因爲依賴而對我大喊大叫(我沒有使用所有的源代碼)。然而,即使添加了所有它一直拋出的錯誤(現在它甚至不能用g ++)。我也有頭沒有cpps – dpalma

+0

我認爲它不喜歡'$(EXE):$(OBJS)$(HDRS)Makefile',因爲$(HDRS)是'simplegui.h globals.h timer.h tile .h gamesprites.h',但它們不存在於當前目錄中。但沒有實際的錯誤信息,我只是猜測。 –

回答

0

不是最好的解決方案,但我是一個傻瓜。我有「多餘」的代碼,當我寫了下面的Makefile它被認爲是固定的:

# Compilador a utilizar 
CC = g++ 

# Libraries 
LIBS = -lmingw32 -lSDLmain -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer 

# Codigo 
SRC = main.cpp timer.cpp simplegui.cpp gamesprites.cpp 

# Object files 
OBJS = $(SRC:.cpp=.o) 

# Nombre del ejecutable 
EXE = juego_naves 

all: $(SRC) $(EXE) 

$(OBJS): 
    g++ -IC:/SDL-1.2.15/include -c $(SRC) 

$(EXE): $(OBJS) 
    g++ -LC:/SDL-1.2.15/lib -o [email protected] $(OBJS) $(LIBS) 

clean: 
    rm -rf *.o $(EXE).exe