Makefile 让make命令退出1

Makefile 让make命令退出1,makefile,exit-code,Makefile,Exit Code,我试图用Make命令抛出一个错误。这是我的生成文件: exit: val=1 exit $(val) 但是,当我运行makeexit&&echo$?时,它给了我退出代码0。我在等出口代码1 我用错了吗?谢谢 Makefile目标“脚本”不像真实脚本那样运行,而是在单独的shell中运行每个命令 您需要使用额外的美元符号来转义makefiles中的美元符号 makefile变量(在目标外部声明并使用$(name)引用)与shell变量(在目标内部声明为命令的一部分并使用${nam

我试图用Make命令抛出一个错误。这是我的生成文件:

exit:
    val=1
    exit $(val)
但是,当我运行
makeexit&&echo$?
时,它给了我退出代码0。我在等出口代码1

我用错了吗?谢谢

  • Makefile目标“脚本”不像真实脚本那样运行,而是在单独的shell中运行每个命令
  • 您需要使用额外的美元符号来转义makefiles中的美元符号
  • makefile变量(在目标外部声明并使用
    $(name)
    引用)与shell变量(在目标内部声明为命令的一部分并使用
    ${name}
    引用)之间存在根本区别
  • 您需要的是相当于
    val=1&&exit$val

    exit:
        val=1 && exit $${val}
    
    或在简单命令中使用的makefile变量:

    val = 1
    exit:
        exit $(val)
    

    如果我使用makefile变量,我可以在exit内部重新分配/更新它吗?例如:
    val=0 exit:val=1 exit$(val)
    混合makefile和shell变量是一个坏主意,可能不会按您期望的方式工作。但是如果你想试试看。您可能希望将生成的makefile发布到以获得一些反馈。