2016-03-22 23 views
0

フォルダ構造を作る傾けます。また、クリーンアップはすべての.oファイルと/ binフォルダを削除する必要があります。は私のメイクの仕事プロジェクトの

私のメイクファイル:私はこのメイクファイルが動作しない理由を知らない

# 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) 

。何が間違っているか教えてください。

+0

それらがない '$(' '$(CXXOBJ)と呼ばれているので、' clean'があなたのオブジェクトファイルを削除しない理由がありますオブジェクト)。 –

+0

また、 'BUILD'はどこにも定義されていません。 –

+0

メークファイルは何も構築していません。 makeに入ると、#build successfulと表示され、停止します。私はなぜコメントを表示するのか分からない。 –

答えて

0

この行は、ソースファイルと同じディレクトリに作成される.oファイルが発生します:$(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] 
には .oファイルが存在しないため

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

は結果的に、これらの線は、効果がありません

また、$(INCLUDE)も定義されていません。

この行で

$(OBJECTS)が定義されていない。

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

ありがとうこれらのエラーを取り除くと、makefileを実行するのに役立ちました。 –

関連する問題