Makefile 在GNU Make中管理简单变量

Makefile 在GNU Make中管理简单变量,makefile,gnu-make,Makefile,Gnu Make,我试图在make上管理变量,但是我看到有几种类型,比如带有{}的shell变量,带有()和$$的变量集,但是现在我只是尝试使用Makefile中的简单代码来管理简单的文本变量 @WORD=GNUMAKE FOUND=1 PWD=$(PWD) $(findstring $$WORD,$$PWD) $(shell echo $$FOUND) $(shell echo $$PWD) 好吧,我真的很惊讶,我只能用$$注释变量,因为我的$make不能识别()或{}

我试图在make上管理变量,但是我看到有几种类型,比如带有{}的shell变量,带有()和$$的变量集,但是现在我只是尝试使用Makefile中的简单代码来管理简单的文本变量

@WORD=GNUMAKE
    FOUND=1
    PWD=$(PWD)
    $(findstring $$WORD,$$PWD)
    $(shell echo $$FOUND)
    $(shell echo $$PWD)
好吧,我真的很惊讶,我只能用$$注释变量,因为我的$make不能识别()或{},但另一件事是编译器给了我一个错误

FOUND=1
PWD=/home/ogonzalezr/GNUMAKE/changedir
/home/ogonzalezr/GNUMAKE/changedir
make: execvp: /home/ogonzalezr/GNUMAKE/changedir: Permission denied
make: *** [all] Error 127
现在我想知道,我的make在操作系统上设置好了吗?也许我们正在谈论一些相关的bug? 我真的很失落,也很扭曲,因为我不明白会发生什么

谢谢你的回答


问候所有人

从哪里开始?你使用变量是错误的

将其放在makefile的顶部:

FOUND = 1

all:
  echo $(FOUND)

然后运行
make
。在你尝试任何更复杂的事情之前,你应该让它工作起来。

如果你有任何关于变量的问题,那么变量并不是那么难;请不要犹豫,检查这个链接是的,就是这样,我在这个目标内设置了变量。这是一个混乱,但知道是好的。谢谢你的回答!但是,我想将这些变量管理到for循环中..我尝试