问个makefile语法问题,请各位大侠赐教

linkejin 2010-06-03 08:27:40
我在uclibc 0.9.30的Makefile.in里面看到这样的规则
extra/config/conf extra/config/mconf: | include/config
$(Q)$(MAKE) -C extra/config $(notdir $@)

请问这里面|是什么意思,难道是

extra/config/conf:include/config

$(Q)$(MAKE) -C extra/config $(notdir $@)


extra/config/mconf: include/config
$(Q)$(MAKE) -C extra/config $(notdir $@)

...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaifaye 2010-06-04
  • 打赏
  • 举报
回复
管道命令,可以查shell手册
yifanernei 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hzcpig 的回复:]
哈哈,我又看错问题了。

Gnu make中文手册 v3.8 第4.3节 依赖的类型 中提到了该'order-only'的用法。
[/Quote]
又,晕一个先

其实info make就是权威的手册,可惜对像我这般的鸟语小白,不太容易找到想要的东西
可先google或者baidu出大概内容,再到info中定位也不错的
hzcpig 2010-06-04
  • 打赏
  • 举报
回复
哈哈,我又看错问题了。

Gnu make中文手册 v3.8 第4.3节 依赖的类型 中提到了该'order-only'的用法。
yifanernei 2010-06-04
  • 打赏
  • 举报
回复
貌似不用最新的手册里就应该有吧,依赖的类型一章里
给你个链接看下吧
http://www.sudu.cn/info/html/edu/20060101/295463.html
linkejin 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yifanernei 的回复:]
管道符是用来指定一个order-only依赖关系的,具体使用查看手册
这里的作用是
extra/config/conf extra/config/mconf两个目录依赖include/config文件的存在
当include/config不存在时,生成extra/config/conf或extra/config/mconf都要触发生成include/config的规则
当include/c……
[/Quote]
我有makefile的手册,但好像没有发现这种用法,哪有Makefile最新的手册可以下?
yifanernei 2010-06-04
  • 打赏
  • 举报
回复
管道符是用来指定一个order-only依赖关系的,具体使用查看手册
这里的作用是
extra/config/conf extra/config/mconf两个目录依赖include/config文件的存在
当include/config不存在时,生成extra/config/conf或extra/config/mconf都要触发生成include/config的规则
当include/config存在时,不论它是否比目标新,都不重新生成目标文件
hzcpig 2010-06-04
  • 打赏
  • 举报
回复
makefile是支持多目标的。

但是GNU的make文档中明确指出,书写规则建议的方式是:单目标,多依赖。就是说尽量要做到一个规则中只存在一个目标文件,可有多个依赖文件。尽量避免使用多目标,单依赖的方式。这样书写的好处是后期维护会非常方便,而且这样做会使Makefile会更清晰、明了。

23,121

社区成员

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

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