首页 > 解决方案 > $(error) - *** 命令在第一个目标之前开始。停止

问题描述

在下面的代码中:

GREEN := "\e[1;33m]"
NCOLOR := "\e[0m"

INFO := @bash -c '\
  printf $(GREEN); \
  echo "=> $$1"; \
  printf $(NCOLOR)' VALUE

ifeq (tag, $(firstword $(MAKECMDGOALS)))

    ifneq (2, $(words $(MAKECMDGOALS)))
        $(error Wrong number of tag arguments)
    endif

    LIST_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)), $(MAKECMDGOALS))

    VERSION := $(word 1, $(LIST_ARGS))
    COMMIT_HASH := $(word 2, $(LIST_ARGS))

    ifeq ($(LIST_ARGS),)
        $(error You must specify a tag)
    endif

    $(eval $(LIST_ARGS):;@:)
endif

缩进是使用制表符完成的

错误:Makefile:12: *** commands commence before first target. Stop.运行后发生make tag

如果我删除第 11、12 和 13 行,它会起作用。

第 24 行是空格缩进,其余都是 TAB 缩进


如何解决这个缩进错误?

标签: makefilegnu-make

解决方案


推荐阅读