鲳鱼,从头发现 make: 规矩背面的力气,u9

admin 4个月前 ( 04-09 08:22 ) 0条评论
摘要: 规则规则是指示make应该如何并且何时构建一个被称作为目标的文件的指令。ar可以用于为任何目的创建档案,但除了静态库,它已经被tar大量替代。...

我曩昔以为 makefile 仅仅一种将一组组的 shell 指令列出来的简洁办法;过了一段时刻我了解到它们是有多么的强壮、灵敏以及功用完全。这篇文章带你领会其间一些有关规则的特性。

-- Roberto Dip

我曩昔以为 makefile 仅仅一种将一组组的唯特偶锡膏 shell 指令列出来的简洁办法;圣甲幻瞳过了鲳鱼,从头发现 make: 规则反面的力气,u9一段时刻我了解到它们是有多么的强壮、灵敏以及功用完全。这篇文章带你领会其间一些有关规则的特性。

补白:这些满是针对 GNU闪婚老公太蛮横 Makefile 的,假如你期望支撑 BSD Makefi村庄小子le ,你会发现有些新的功用缺失。感谢 zge 指出这点。

规则

规则(rule)是指示 make 应该怎么而且何时构建一个被称作为 方针(ta妻约成婚闲听落花全文rget)的文件的指令。方针能够依赖于其它被称作为 条件(prerequisite)的文件。

你会指示 make 怎么按 过程(recipe)构建方针,那就是一套依照呈现次序一次履行一个的 shell 指令。语法像这样:

target_nam尚飞和宋薇一度神灯e : prerequisites

recipe

一但你界说好了规则,你就能够经过从指令行履行以下指令构建方针:

$ make target_name

方针一经构建,除非条件改动,不然 make 会满足聪明地不再去运转该过程。

关于条件的更多信息

条件标明晰两九月飞歌件工作:

  • 当方针应当被构建时:假如其间一个条件比方针更新,make 假定意图应当被构建。
  • 履行的次序:鉴于条件能够反过来在 makefile 中由另一套规则所构建,它们相同暗示了一个履行规则的次序。

假如你想要界说一个次序可是你不想在条件改动的时分从头构建方针胡大宝直播间,你能够运用一种特别的叫做“ 唯蛋生王妃次序(order only)”的条件。这种条件能够被放在一般的条件之后,用管道符(|)进行分隔。

款式

为了便当,make 承受方针和条件的款式。经过包女生白袜含 % 符号能够界说一种款式。这个符号是一个能够匹配任何长度的文字符号或许空隔的通配符。以下有一些示例:

  • %:匹配任何文件
  • %.md:匹配一切出产队里养了一群小鸭子 .md 结束的文件
  • prefix%.go:匹配一切以 prefix 最初以 .go 结束的文件

特别最强龙少方针

有一系列方针姓名,它们关于 make 来说有特别的含义,被称作 特别方针(special target)。

你能够在这个 文档 发现全套特别方针。作为一种经历规律,特别方针以点开鲳鱼,从头发现 make: 规则反面的力气,u9始后边跟着大写字母。

以下是几个有用的特别方针:

  • .PHONY:向 make 标明此方针的条件能够被当成伪方针。这意味着 make 将总是运转,不管有那个姓名的文件是否存在或许前次船尸疑案被修正的时刻是什么。
  • .DEFAULT:被用于任何没有指定规则的方针。
  • .IGNORE:FEST566假如你指定 .IGNORE 为条件,make 将疏忽履行过程中的过错。

代替

当你需要以你指定的改动方法改动一个变量的值, 代替(substitution)就非常有用了。

代替的格局是 $(var:a=b),它的意思是获取变量 var 的值,用值里边的 b 代替词结尾的每个 a 以代替终究的字符串。例如:

foo := a.o

bar : = $(foo:.o=.c) # sets bar to a.c

留意:特别感谢 Luis Lavena 让我们知道代替的存在。

档案文件

档案文件是用鲳鱼,从头发现 make: 规则反面的力气,u9来一同将多个数据文档(类似于压缩文件的概念)收集成一个文件。它们由 ar Unix 东西所构建。ar 能够用于为任何意图创立档案,但除了 静态库 ,它现已被 t鲳鱼,从头发现 make: 规则反面的力气,u9ar 鲳鱼,从头发现 make: 规则反面的力气,u9很多代替。

在 make 中,你能够运用一个档案文件中的独自一个成秦家有兽员作为方针或许条件,就像这样:

arBarbapapac鲳鱼,从头发现 make: 规则反面的力气,u9hive(membe游蓝恋之小蓝怀孕后续r) : prerequisite

recipe

最终的主意

关于 ma鲳鱼,从头发现 make: 规则反面的力气,u9ke 还有更多可探究的,可是至少这是一个起点,我激烈鼓舞你去检查 文档 ,创立一个蠢笨的 makefile 然后就能够探究它了。


via: https://monades.roperzh.com/rediscovering-make-power-behind-rules/

作者: Roberto Dip 译者: tomjlw 校正: wxy

本文由 LCTT 原创编译, Linux我国 荣誉推出

点击“了d3252解更多”可拜访文内链接

文章版权及转载声明:

作者:admin本文地址:http://www.gozeniwa.com/articles/782.html发布于 4个月前 ( 04-09 08:22 )
文章转载或复制请以超链接形式并注明出处泥洼地,心中的平坦道路,需要我们走过你洼地