代码之家  ›  专栏  ›  技术社区  ›  vico

从命令行构建Eclipse Makefile项目

  •  0
  • vico  · 技术社区  · 5 年前

    我创建了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)
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   paulsm4    5 年前

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

    ... 但问题显然是Makefile碰巧依赖变量“$(BUILD_MODE)”。。。

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

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

    附言:

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