在makefile中,有时会在依赖关系中看到竖线“|”管道符,它是作用是用来指示命令前提目标 order-only prerequisites。
1. makefile基本语法复习
这里,我们简单复习一下makefile基本语法。其中的[TAB]就是键盘上的Tab键,不可以用空格替代。
target : prerequisites
[TAB]command1
[TAB]command2
[TAB]...
[TAB]commandN
其中,
target,称为生成目标。可以是Object File,也可以是执行文件,还可以是一个标签(Label)。
prerequisites ,称为前提目标。
command*,是make需要执行的命令,任意的Shell命令。
2. 命令前提目标 order-only prerequisites
在makefile中,有时会在依赖关系中看到竖线“|”管道符,它是作用是用来指示命令前提目标 order-only prerequisites。
事实上make工具能理解两种类型的前提目标:
Type I: 正常前提目标(normal prerequisites)
正常前提目标能达成两个目的:
i. 影响build command执行顺序,即:在生成目标(target)的命令被执行前,所有的需要生成的前提目标&#