首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DJGPP让DOS‘多目标模式’

DJGPP让DOS‘多目标模式’
EN

Stack Overflow用户
提问于 2020-05-23 15:53:46
回答 1查看 24关注 0票数 0

我正在使用DOS下的DJGPP make。

这是我的主要Makefile:

代码语言:javascript
复制
BIN_DIR = bin
OBJ_DIR = obj
DIRS_FOR_CREATION = $(BIN_DIR) $(OBJ_DIR)
SOURCE_DIRS = argparse logger transmission tests

EXECUTABLE_NAME = $(notdir $(shell pwd))
EXECUTABLE_FILE = $(BIN_DIR)/$(EXECUTABLE_NAME)

CC = cc

CFLAGS =
INCLUDES =
LFLAGS =
LIBS =

MAIN_SOURCE = main.c
MAIN_OBJ = $(OBJ_DIR)/main.o

all: directories submodules main $(EXECUTABLE_FILE)
    @echo $(EXECUTABLE_NAME) was compiled

directories:
    mkdir -p $(DIRS_FOR_CREATION)

submodules: 
    $(MAKE) -C $(word 1, $(SOURCE_DIRS))
    $(MAKE) -C $(word 2, $(SOURCE_DIRS))
    $(MAKE) -C $(word 3, $(SOURCE_DIRS))
    $(MAKE) -C $(word 4, $(SOURCE_DIRS))

main:
    $(CC) $(CFLAGS) $(INCLUDES) -c $(MAIN_SOURCE) -o $(MAIN_OBJ)

$(EXECUTABLE_FILE): $(MAIN_SOURCE)
    $(CC) $(CFLAGS) $(INCLUDES) -o $(EXECUTABLE_FILE) $(MAIN_OBJ) $(LFLAGS) $(LIBS)

这在QNX上运行得很好,但在DOSBox中我得到了以下错误:

代码语言:javascript
复制
makefile:19: *** multiple target patterns. Stop.

19行是all: directories submodules main $(EXECUTABLE_FILE)。我应该怎么做才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-23 20:54:42

您应该添加:

代码语言:javascript
复制
$(info EXECUTABLE_NAME = '$(EXECUTABLE_NAME)')
$(info EXECUTABLE_FILE = '$(EXECUTABLE_FILE)')

所以你可以看到这个变量包含了什么。我怀疑它包含一个冒号(:),这是特别要制作的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61969040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档