makefile:命令在第一个目标之前开始

时间:2017-10-22 08:02:35

标签: makefile

我有一个像下面的规则只是为了测试

test:
ifeq (1,1)
$(info --)
endif
    echo kkk

当我运行make test时,它会显示

  

makefile:41:***命令在第一个目标之前开始。停止。

有什么问题?

修改

根据Florian Weimer的说法,我们应该缩进$(info --)行。但如果我写

test:
ifeq (1,1)
    $(info --)
endif
    echo kkk

test2:
ifeq (1,1)
$(info --)
endif
    echo kkk

然后make test会抱怨

  

makefile:11:***命令在第一个目标之前开始。停止。

所以不要总是扫描整个makefile?似乎在规则测试完成后它不会停止

1 个答案:

答案 0 :(得分:1)

您需要对$(info --)行进行制表符缩进,以便它不会终止配方,如下所示:

test:
ifeq (1,1)
    $(info --)
endif
    echo kkk

(显然,你需要在这里使用标签。)

编辑条件块的make文档始终在配方中使用制表符缩进,并在配方之外使用空格或缩进。这就是为什么有两种风格。

如果我缩进$(info --)行,那么完整的示例适用于我。

相关问题