Makefile Make找不到要执行的程序/bin/sh:1:rm:未找到

Makefile Make找不到要执行的程序/bin/sh:1:rm:未找到,makefile,Makefile,在下面的Makefile中运行任何命令时,我都会得到错误 找不到 正在讨论的Makefile是 所有调用rm的命令都失败,包括clean命令 我检查了以下事项: 调用的程序已安装。我可以毫无问题地从终端给他们打电话 它们的路径都是$PATH 我在Makefile本身中没有任何语法错误。命令以制表符开头 如果在调用命令时添加命令的路径,即:/bin/rm*bin,则其行为与预期相同 作为黑客,我将为Makefile中的每个命令添加完整路径,但我想知道是什么使“make”的行为如此。Makefi

在下面的Makefile中运行任何命令时,我都会得到错误

找不到

正在讨论的Makefile是

所有调用rm的命令都失败,包括clean命令

我检查了以下事项:

  • 调用的程序已安装。我可以毫无问题地从终端给他们打电话
  • 它们的路径都是$PATH
  • 我在Makefile本身中没有任何语法错误。命令以制表符开头
  • 如果在调用命令时添加命令的路径,即:
    /bin/rm*bin
    ,则其行为与预期相同

作为黑客,我将为Makefile中的每个命令添加完整路径,但我想知道是什么使“make”的行为如此。Makefile的这一行看起来非常可疑(第2行):

PATH:=~/太空入侵者/

尝试这样做:

$(info PATH before = $(PATH))
PATH:=~/Space-Invaders/
$(info PATH after = $(PATH))
这将显示此命令前后的路径。一个简单的解决方案可能是:

PATH:=~/Space-Invaders/:$(PATH)
看起来这条路对我来说被覆盖了


注意:如果使用简单扩展,则只能递归引用变量(分配给它本身):=,因此如果将其更改为
=
,它会抱怨。

这就是问题所在。我已更改路径:=~/空间入侵者/以投影路径:=~/空间入侵者/以避免混淆。非常感谢你。