C++ 我的makefile无法工作

C++ 我的makefile无法工作,c++,makefile,C++,Makefile,项目的文件夹结构: |--particle-system | |-- bin | | |-- .o files | |-- docs | | |-- design.md | | `-- TO_DO | |-- Makefile | |-- src | | |-- .cpp files + .h files | `-- test 我需要将生成的所有.o文件放入bin文件夹。此外,清理还应删除所有.o文件和/bin文件夹 我的生成文件: # pa

项目的文件夹结构:

|--particle-system
|   |-- bin
|   |   |-- .o files
|   |-- docs
|   |   |-- design.md
|   |   `-- TO_DO
|   |-- Makefile
|   |-- src
|   |   |-- .cpp files + .h files
|   `-- test
我需要将生成的所有.o文件放入bin文件夹。此外,清理还应删除所有.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 $@


$(OBJ_DIR)/%.o: src/%.c
    $(MUTE)$(CC) $(CFLAGS) $(INCLUDE) $< -c -o $@

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

clean:
    # Cleaning...
    -$(MUTE)rm -f $(EXE) $(OBJECTS)
#粒子系统生成文件
EXE=粒子系统
OBJ_DIR=bin
CFLAGS=-g
CXXFLAGS=-Wall-Wextra-g-std=c++0x
LDFLAGS=-lSDL2-lSDL2_映像-lSDL2_ttf-lSDL2_混频器-lSDL2_gfx-lm
项目的C++源文件
CXXFILES=$(shell find src-maxdepth 1-type f-name'*.cpp')
CXXOBJ=$(CXX文件:.cpp=.o)
ifdef V
哑巴=
VTAG=-v
其他的
静音=@
恩迪夫
全部:$(EXE)
#建设成功
$(EXE):$(CXXOBJ)
$(静音)$(CXX)$(CXXOBJ)-o$(EXE)$(LDFLAGS)
$(OBJ_DIR)/%.o:src/%.cpp
$(静音)$(CXX)$(CXXFLAGS)$(包括)$<-c-o$@
$(OBJ_DIR)/%.o:src/%.c
$(静音)$(CC)$(CFLAGS)$(包括)$<-c-o$@
跑步:全部
$(静音)。/$(EXE)
清洁:
#清洁。。。
-$(静音)rm-f$(EXE)$(对象)

我不知道为什么这个makefile不工作。请说明此处的错误。

此行将导致在与源文件相同的目录中创建
.o
文件:

CXXOBJ = $(CXXFILES:.cpp=.o)
因此,这些行没有效果,因为
$(OBJ_DIR):


clean
没有删除对象文件的原因是它们被称为
$(cxobj)
,而不是
$(对象)
。此外,您还没有在任何地方定义
构建
。生成文件没有构建任何内容。当我输入make时,它只显示“#build successful”并停止。我甚至不明白为什么它会显示一条评论。是的,构建只是上一次更改的遗留部分。我的坏消息,删除了它。它不起作用并打印评论的唯一原因是,如果您已经有一个名为
particlesystem
的文件。非常感谢您指出这一切。删除这些错误有助于我运行makefile。
$(OBJ_DIR)/%.o: src/%.cpp
    $(MUTE)$(CXX) $(CXXFLAGS) $(INCLUDE) $< -c -o $@

$(OBJ_DIR)/%.o: src/%.c
    $(MUTE)$(CC) $(CFLAGS) $(INCLUDE) $< -c -o $@
-$(MUTE)rm -f $(EXE) $(OBJECTS)