从命令行构建 Eclipse Makefile 项目
Posted
技术标签:
【中文标题】从命令行构建 Eclipse Makefile 项目【英文标题】:Build Eclipse Makefile project from command line 【发布时间】:2020-12-23 20:22:02 【问题描述】:我创建了 Eclipse Makefile c++ 项目,目的是在没有 Eclipse 的情况下构建项目。但是在终端中运行 make 时出现错误:
Makefile:15: *** Build mode not supported by this Makefile. Stop.
如何解决这个问题?如果无法使用 make 构建,为什么还需要 Eclipse Makefile?
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)
【问题讨论】:
make BUILD_MODE=linuxtools
?
【参考方案1】:
我不确定您是如何创建 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 时碰巧添加了。
【讨论】:
@vico:现在一切正常吗?你解决问题了吗? FWIW,BUILD_MODE=debug make
也可以。它的作用是设置 BUILD_MODE 环境变量,将其导出到 make 可执行文件中,然后在运行下一个命令之前将其删除。以上是关于从命令行构建 Eclipse Makefile 项目的主要内容,如果未能解决你的问题,请参考以下文章