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

yingzijuntuan 2013-06-20 11:57:53

就是这个
第一句应该是定义一个常量的吧?但是为什么后面有空格呢?不违规吗?
还有for前面的@算怎么回事?
do_make到底干了什么?
...全文
164 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2013-06-27
  • 打赏
  • 举报
回复
引用 8 楼 ForestDB 的回复:
二次扩展,两个$第一次扩展时表示一个$,然后在二次扩展时就是$原本的意思了。
第一个$在是Makefile用的,第二个$是shell用的; 也可以这么理解: dir 是shell变量,而不是Makefile变量,所以需要用两个$$。
yingzijuntuan 2013-06-22
  • 打赏
  • 举报
回复
引用 6 楼 ForestDB 的回复:
http://www.gnu.org/software/make/manual/ 好好看,还有bash的知识,Linux的基本知识也要看 定义了“当前目录”下的lib/lib和src这两个目录 echo Making ...就是在控制台打出"Making ..."这样一个字眼,你就知道make当前在干什么了。
那dir前面的两个$算什么回事?什么意思?
ForestDB 2013-06-22
  • 打赏
  • 举报
回复
二次扩展,两个$第一次扩展时表示一个$,然后在二次扩展时就是$原本的意思了。
Carl_CCC 2013-06-21
  • 打赏
  • 举报
回复
引用 2 楼 yingzijuntuan 的回复:
[quote=引用 1 楼 Idle_Cloud 的回复:] =号前后有空格都不违法。 for前面加@表示只执行,不打印命令语句,你不加@那么for也个语句也会打印出来的。 do_make就是一个循环,扫描DIRS里面的所有子目录,然后到目录里去,执行make
我的意思是,DIRS = lib/lib src 那个src前面的空格没有问题吗? 还有do_make的东西里面,cd $$dir ,两个$算怎么回事? 然后他make了什么东西呀?[/quote] src前面就是要空格,不然就成一个字符串了,就是要两个字符串。两个目录。 这个是shell脚本的语法,$$dir 最好翻译成 $dir make就是执行makefile脚本啊 makefile你应该知道吧。
ForestDB 2013-06-21
  • 打赏
  • 举报
回复
http://www.gnu.org/software/make/manual/ 好好看,还有bash的知识,Linux的基本知识也要看 定义了“当前目录”下的lib/lib和src这两个目录 echo Making ...就是在控制台打出"Making ..."这样一个字眼,你就知道make当前在干什么了。
yingzijuntuan 2013-06-21
  • 打赏
  • 举报
回复
引用 1 楼 Idle_Cloud 的回复:
=号前后有空格都不违法。 for前面加@表示只执行,不打印命令语句,你不加@那么for也个语句也会打印出来的。 do_make就是一个循环,扫描DIRS里面的所有子目录,然后到目录里去,执行make
我的意思是,DIRS = lib/lib src 那个src前面的空格没有问题吗? 还有do_make的东西里面,cd $$dir ,两个$算怎么回事? 然后他make了什么东西呀?
Carl_CCC 2013-06-21
  • 打赏
  • 举报
回复
=号前后有空格都不违法。 for前面加@表示只执行,不打印命令语句,你不加@那么for也个语句也会打印出来的。 do_make就是一个循环,扫描DIRS里面的所有子目录,然后到目录里去,执行make
yingzijuntuan 2013-06-21
  • 打赏
  • 举报
回复
引用 3 楼 Idle_Cloud 的回复:
[quote=引用 2 楼 yingzijuntuan 的回复:] [quote=引用 1 楼 Idle_Cloud 的回复:] =号前后有空格都不违法。 for前面加@表示只执行,不打印命令语句,你不加@那么for也个语句也会打印出来的。 do_make就是一个循环,扫描DIRS里面的所有子目录,然后到目录里去,执行make
我的意思是,DIRS = lib/lib src 那个src前面的空格没有问题吗? 还有do_make的东西里面,cd $$dir ,两个$算怎么回事? 然后他make了什么东西呀?[/quote] src前面就是要空格,不然就成一个字符串了,就是要两个字符串。两个目录。 这个是shell脚本的语法,$$dir 最好翻译成 $dir make就是执行makefile脚本啊 makefile你应该知道吧。[/quote] 定义的变量有两个目录?可以这样定义吗?是哪两个目录? 我大概看懂了do_make的意思了,就是在目录下寻找makefile,然后make 但是对于echo Making $$dir ...; 这句话是什么意思呀?echo是打印的功能吧,那Making是什么意思?
fdl19881 2013-06-21
  • 打赏
  • 举报
回复
依赖下的@符号表示,如果此语句执行错误,则仅仅忽略该错误,继续向下执行,而不会报错。

23,129

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧