makefile之伪目标

作者: frank_545b | 来源:发表于2018-09-13 15:35 被阅读0次

伪目标

1. 伪目标的语法:

在书写伪目标时,首先需要声明伪目标,然后再定义伪目标规则.

1.1 声明伪目标:

.PHONY clean (这里声明clean是伪目标)

1.2 定义伪目标规则:

clean:      (这里定义伪目标clean的规则,即伪目标的执行动作)
    rm *.c

2. 伪目标的作用:

2.1 避免目标名与文件名冲突

    也即,如果指定了伪目标,那么伪目标一定会被执行。

2.2 提高执行效率

    当一个目标被声明为 伪目标后,makefile在执行规则时不会去试图查找隐含规则来创建它。

3. 伪目标的示例:

3.1 文件名冲突

3.1.1 当文件名冲突示例

假设,makefile 当前目录下有与伪目标clean 同名的文件clean,而makefile中没有定义伪目标clean。

#.PHONY: clean
clean:
    rm temp

源码路径:

image

从执行的结果可以看出,目标clean并未执行。

.PHONY: clean
clean:
    rm temp

源码路径:

image

从执行结果可以看出,伪目标clean执行了,由于当前目录下没有temp目录,所以提示“No such file or directory”。但是在 rm前加上-,可以忽略错误,make会继续向下执行。

3.1.2 多文件名冲突示例

.PHONY: all clean prog1 prog2 prog3
all: prog1 prog2 prog3

prog1:
    gcc prog1/main.c -o p1

prog2:
    gcc prog2/main.c -o p2

prog3:
    gcc prog3/main.c -o p3

clean:
    rm p1 p2 p3

源码路径:https://github.com/suonikeyinsuxiao/trunk/tree/master/makefile_project/phony/phony2

如果将伪目标的声明改为 .PHONY: all clean,目标prog1,prog2,prog3将不会被执行。

image

相关文章

  • Makefile的目标

    Makefile的目标 Makefile为什么需要伪目标 这里的目标是指makefile文件中的目标,不是Make...

  • makefile之伪目标

    伪目标 1. 伪目标的语法: 1.1 声明伪目标: 1.2 定义伪目标规则: 2. 伪目标的作用: 2.1 避免目...

  • Makefile

    参考: Makefile经典教程 示例: 默认目标 PHONY 伪目标 make -n 命令必须以tab 键开始 ...

  • makefile之强制目标

    强制目标 1. 定义 如果一个规则(rule_A)既没有依赖也没有命令,仅有目标(Targe_A),并且目标名不冲...

  • Make

    make 目标 顶层 Makefile 作为入口, 来调用其他 makefile, 顶层 makefile 一般有...

  • makefile编写(一)

    makefile或者Makefile 书写规则:命令就是用依赖来生成目标 目标:依赖 (tab) 命令 目录结构:...

  • makefile-伪目标与编程实例分析

    makefile中的目标的含义: 默认情况下, make认为目标对应着一个文件 make比较目标文件和依赖文件的新...

  • 问题集锦

    makefile 中 .PYONY 的目的是什么默认情况下,Makefile 目标是「文件目标」- 它们用于从其他...

  • makefile简述

    makefile 基本语法 目标文件:依赖文件[Tab] 命令 上述makefile语法被称为一组规则 目标文件是...

  • makefile 基本规则

    Makefile1 前面指定目标, 最前面的目标就是终极目标2 只要实现终极目标即可3 makefile 会先将所...

网友评论

    本文标题:makefile之伪目标

    本文链接:https://www.haomeiwen.com/subject/gjgwgftx.html