Makefile的目标

作者: stringlife | 来源:发表于2018-08-10 14:21 被阅读7次

Makefile的目标

Makefile为什么需要伪目标

这里的目标是指makefile文件中的目标,不是Makefile的历史使命
Makefile中的目标到底是什么呢,make命令是怎么样理解目标呢

1.make将makefile的目标认为是一个文件;
2.make解释器比较目标文件和依赖文件的新旧关系,决定是否执行命令

为里理解Makeifle的目标来做以下测试

编写一个Makefile
在同一个目录下新建一个test文件
Makefile文件内容如下:

test:
    echo test   

此时执行make会出现什么情况,一定会有人会认为会执行echo test语句
实际情况是下面的结果

string@asus:~/Projects/makefile$ make
make: 'test' is up to date.

为什么是上面的情况呢,别忘了在目录下新建了一个test文件,这个文件是出现这个情况的罪魁祸首,因为make将目标认为是一个文件,所以执行make的时候会去寻找该文件,如果该文件存在则不会执行相应的语句
如果删除该test文件则会按照预期的目标执行
如果一个目标不去检测,一定要执行该怎么办,Makefile提供了一个很好的办法,在大多数的Makefile中也有这个办法的例子,那就是Makefile的伪目标的,将一个目标设计伪目标的时候不管如何都会去执行目标下的命令
在该例子中添加如下语句则会按照预期的结果执行

.PHONY : test

是不是很熟悉,这个就是在大多数Makefile中clean的处理方法,这大概就是伪目标的由来原因吧

相关文章

  • Makefile的目标

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

  • Make

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

  • makefile编写(一)

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

  • 问题集锦

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

  • makefile简述

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

  • # 一个Makefile的进化(三)

    一个Makefile的进化(三) makefile配置分离与交叉编译设置目标:1.分离makefile的配置2.增...

  • makefile 基本规则

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

  • Makefile简介

    Makefile基础 一、Makefile是什么 (1)目标文件依赖哪些文件?(2)依赖的文件是否更新?make ...

  • GitLab CI 实现 Golang 自动构建为 Docker

    实现目标 提交代码自动构建,自动打包为docker镜像 前期准备 Makefile 学习并使用 MakeFile ...

  • Makefile学习笔记——5.变量

    1 前言 在Makefile中,变量的使用类似于C语言中的宏,在 Makefile 的目标、依赖、命令中引用变量的...

网友评论

    本文标题:Makefile的目标

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