日期:2014-05-16  浏览次数:20569 次

有一段makefile没有读懂,求大侠帮忙看看

就是这个
第一句应该是定义一个常量的吧?但是为什么后面有空格呢?不违规吗?
还有for前面的@算怎么回事?
do_make到底干了什么?
makefile

------解决方案--------------------
引用:
Quote: 引用:

=号前后有空格都不违法。
for前面加@表示只执行,不打印命令语句,你不加@那么for也个语句也会打印出来的。
do_make就是一个循环,扫描DIRS里面的所有子目录,然后到目录里去,执行make

我的意思是,DIRS = lib/lib src
那个src前面的空格没有问题吗?
还有do_make的东西里面,cd $$dir ,两个$算怎么回事?
然后他make了什么东西呀?

src前面就是要空格,不然就成一个字符串了,就是要两个字符串。两个目录。
这个是shell脚本的语法,$$dir 最好翻译成 $dir
make就是执行makefile脚本啊
makefile你应该知道吧。
------解决方案--------------------
引用:
二次扩展,两个$第一次扩展时表示一个$,然后在二次扩展时就是$原本的意思了。

第一个$在是Makefile用的,第二个$是shell用的;
也可以这么理解:
dir 是shell变量,而不是Makefile变量,所以需要用两个$$。