c++ - 从命令行构建 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)
解决方案
我不确定你是如何创建你的 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 时碰巧添加了。
推荐阅读
- powershell - 如何在 AD 中删除计算机并将已删除的计算机通过电子邮件发送给自己
- java - Spring WebClient 在使用 ExchangeFilterFunction 发送之前无法读取请求正文
- javascript - 如何将 vuex-persistentstate 与现有的商店(vuex)设置一起使用?
- c# - 如何避免强制终止以停止控制台应用程序?
- peewee - 在 Huey 中为周期性任务实现 context_task 的最佳方法是什么?
- multithreading - 如何从 std::async 线程中启动 std::async 线程,并在第二个启动后让第一个死掉?
- c# - 是什么导致了闪电质量的这种极端差异?
- pandas - 创建了多索引列的结构后,我无法将此模板适合数据框;这个怎么做?
- vb.net - 函数不会从文本正文中删除字符串
- file - 在 _blank 选项卡中打开 MultipartFile(Blob 存储)