首页 > 解决方案 > 从命令行构建 Eclipse Makefile 项目

问题描述

我已经创建了 Eclipse Makefile c++ 项目,目的是在没有 Eclipse 的情况下构建项目。但是在终端中运行 make 时出现错误:

Makefile:15: *** Build mode  not supported by this Makefile.  Stop.

如何解决?如果我不能用 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)

标签: c++makefileeclipse-cdt

解决方案


我不确定你是如何创建你的 Makefile ...

...但问题显然是您的 Makefile 恰好依赖于变量 "$(BUILD_MODE)" ...

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

建议:在命令行中输入: make BUILD_MODE=debug

PS:

  • 等效地,您可以将 BUILD_MODE 定义为环境变量,例如set BUILD_MODE=debug(DOS 提示符)或export BUILD_MODE-debug(Linux 术语)
  • “BUILD_MODE”不是“必需的”。这只是一个约定。您的“Makefile 生成器”在创建您的特定 makefile 时碰巧添加了。

推荐阅读