2011-02-11 72 views
0

我试图管理make上的变量,但我发现有几种类型的shell变量{},变量用()和$$设置,但现在我只是试图管理简单的文本变量在我的Makefile简单的代码管理GNU Make中的简单变量Make

@WORD=GNUMAKE 
    FOUND=1 
    PWD=$(PWD) 
    $(findstring $$WORD,$$PWD) 
    $(shell echo $$FOUND) 
    $(shell echo $$PWD) 

很好,我真的感到惊讶,我只得到自认倒霉,对于我,我只能使用变量地注意到$$,因为我的$化妆不承认()或{}但另一件事是,编译器给我一个错误

FOUND=1 
PWD=/home/ogonzalezr/GNUMAKE/changedir 
/home/ogonzalezr/GNUMAKE/changedir 
make: execvp: /home/ogonzalezr/GNUMAKE/changedir: Permission denied 
make: *** [all] Error 127 

现在我想知道,是我的在OS上做好设置?也许我们正在谈论一些相关的错误? 我真的失去了,真的扭曲,因为我不明白任何可能发生的事情。

谢谢您的回答,

问候所有

+0

如果您有任何疑问,井变量并不那么困难;请不要犹豫,检查此链接http://stackoverflow.com/questions/3006453/how-to-match-occurance-of-word-in-list-in-makefile/4969007#4969007 – 2011-02-11 13:26:41

回答

0

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

把这个在生成文件的顶部:

FOUND = 1 

all: 
    echo $(FOUND) 

然后运行make。在尝试任何更复杂的事情之前,你应该做好这个工作。

+0

是的,就是这样的事情,我在这个目标里面设置了变量..这是一团糟,但知道是可以的。感谢您的回答! 但是,我想将这些变量管理为for循环..我试试 – 2011-02-11 14:26:18