从命令行构建Eclipse Makefile项目 我创建了Eclipse Makefile C++项目,目的是在没有Eclipse的情况下构建项目。但在终端中运行make时出错: Makefile:15: *** Build mode not supported by this Makefile. Stop.

从命令行构建Eclipse Makefile项目 我创建了Eclipse Makefile C++项目,目的是在没有Eclipse的情况下构建项目。但在终端中运行make时出错: Makefile:15: *** Build mode not supported by this Makefile. Stop.,c++,makefile,eclipse-cdt,C++,Makefile,Eclipse Cdt,如何解决这个问题?如果不能用make构建Eclipse Makefile,为什么需要它 生成文件内容: PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) OBJS = boiler.o ifeq ($(BUILD_MODE),debug) CFLAGS += -g else ifeq ($(BUILD_MODE),profile) CFLAGS += -O2 else ifeq ($(BUILD_MOD

如何解决这个问题?如果不能用make构建Eclipse Makefile,为什么需要它

生成文件内容:

PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))

OBJS = boiler.o

ifeq ($(BUILD_MODE),debug)
    CFLAGS += -g
else ifeq ($(BUILD_MODE),profile)
    CFLAGS += -O2
else ifeq ($(BUILD_MODE),run)
    CFLAGS += -O2
else ifeq ($(BUILD_MODE),linuxtools)
    CFLAGS += -g -pg -fprofile-arcs -ftest-coverage
    LDFLAGS += -pg -fprofile-arcs -ftest-coverage
else
    $(error Build mode $(BUILD_MODE) not supported by this Makefile)
endif

all:    boiler

boiler: $(OBJS)
    $(CXX) $(LDFLAGS) -o $@ $^

%.o:    $(PROJECT_ROOT)%.cpp
    $(CXX) -c $(CFLAGS) $(CXXFLAGS) $(CPPFLAGS) -o $@ $<

%.o:    $(PROJECT_ROOT)%.c
    $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

clean:
    rm -fr boiler $(OBJS)
PROJECT_ROOT=$(dir$(abspath$(lastword$(MAKEFILE_LIST)))
OBJS=锅炉
ifeq($(构建模式),调试)
CFLAGS+=-g
else ifeq($(构建模式),配置文件)
CFLAGS+=-O2
else ifeq($(构建模式),运行)
CFLAGS+=-O2
else ifeq($(构建模式),linuxtools)
CFLAGS+=-g-pg-fprofile弧-ftest覆盖率
LDFLAGS+=-pg-fprofile弧-ftest覆盖率
其他的
$(此生成文件不支持错误生成模式$(生成模式)
恩迪夫
全部:锅炉
锅炉:$(OBJS)
$(CXX)$(LDFLAGS)-o$@$^
%.o:$(项目根)%.cpp
$(CXX)-c$(CFLAGS)$(CXXFLAGS)$(CPPFLAGS)-o$@$<
%.o:$(项目根)%.c
$(CC)-c$(CFLAGS)$(CPPFLAGS)-o$@$<
清洁:
rm-fr锅炉$(OBJS)

我不确定您是如何创建Makefile的

。。。但是问题很明显,您的Makefile恰好依赖于变量“$(BUILD\u MODE)”

。。。而且,您运行“make”的方式,BUILD_模式没有设置为您的选项之一,或者根本没有设置

建议:在命令行中键入:
makebuild\u MODE=debug

附言:

  • 同样,您可以将BUILD_MODE定义为环境变量,例如
    设置BUILD_MODE=debug
    (DOS提示符)或
    导出BUILD_MODE-debug
    (Linux术语)
  • “构建模式”不是“必需的”。这只是一个惯例。您的“Makefile生成器”在创建特定Makefile时碰巧添加了

make BUILD\u MODE=linuxtools
?@vico:现在一切都好了吗?你解决问题了吗?