2016-03-22 14 views
0

Klasör yapısını yapmak olamaz. Ayrıca temizleme, tüm .o dosyalarını ve/bin klasörünü kaldırmalıdır.benim makefile çalışma projesinin

Benim makefile:

# particle-system Makefile 

EXE = particlesystem 
OBJ_DIR = bin 

CFLAGS = -g 
CXXFLAGS = -Wall -Wextra -g -std=c++0x 
LDFLAGS = -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lSDL2_gfx -lm 


# c++ source files of the project 
CXXFILES = $(shell find src -maxdepth 1 -type f -name '*.cpp') 
CXXOBJ = $(CXXFILES:.cpp=.o) 

ifdef V 
MUTE = 
VTAG = -v 
else 
MUTE = @ 
endif 

all: $(EXE) 
    # build successful 

$(EXE): $(CXXOBJ) 
    $(MUTE)$(CXX) $(CXXOBJ) -o $(EXE) $(LDFLAGS) 

$(OBJ_DIR)/%.o: src/%.cpp 
    $(MUTE)$(CXX) $(CXXFLAGS) $(INCLUDE) $< -c -o [email protected] 


$(OBJ_DIR)/%.o: src/%.c 
    $(MUTE)$(CC) $(CFLAGS) $(INCLUDE) $< -c -o [email protected] 

run: all 
    $(MUTE)./$(EXE) 

clean: 
    # Cleaning... 
    -$(MUTE)rm -f $(EXE) $(OBJECTS) 

bu makefile neden çalışmadığını bilmiyorum. Lütfen neyin yanlış olduğunu söyle.

+0

onlar ('$ (CXXOBJ)' değil, '$ deniyor çünkü clean' senin nesne dosyaları kaldırarak değil mi neden' ​​nedeni AMAÇLARI) '. –

+0

Ayrıca, hiçbir yerde 'BUILD' tanımlanmadı. –

+0

Makefile hiçbir şey oluşturmuyor. Yaptığım zaman, sadece #build başarılı gösterir ve durur. Bir yorumunu neden görüntüleyemiyorum bile. –

cevap

0

Bu hat .o dosya kaynak dosyaları ile aynı dizinde oluşturulur neden olur: hayır .o dosya $(OBJ_DIR):

$(OBJ_DIR)/%.o: src/%.cpp 
    $(MUTE)$(CXX) $(CXXFLAGS) $(INCLUDE) $< -c -o [email protected] 

$(OBJ_DIR)/%.o: src/%.c 
    $(MUTE)$(CC) $(CFLAGS) $(INCLUDE) $< -c -o [email protected] 
içinde olduğundan

CXXOBJ = $(CXXFILES:.cpp=.o) 

Dolayısıyla bu çizgiler, hiçbir etkisi yoktur

Ayrıca, $(INCLUDE) tanımlanmamıştır. Bu satırda

, $(OBJECTS) tanımlanmadı:

-$(MUTE)rm -f $(EXE) $(OBJECTS) 
+0

kullanın. Tüm bunları işaret ettiğim için bu hataları kaldırmak makefile çalışmamı sağladı. –