• 【Linux】Make/Makefile


    目录

    一.介绍

    二.使用与原理

    三.目标与伪目标

    四.一些扩展


    一.介绍

    项目自动化构建工具 --- make/makefile

    make是一条命令

    makefile是一个文件

    两者搭配使用,完成自动化构建

    makefile带来的好处就是自动化编译,只需要一个make命令,整个工程自动编译,提高开发效率

    二.使用与原理

    注意一点依赖方法前一定是一个tab,否则报错。

    当写好makefile文件后,就可以直接使用make命令了。

    1.在使用make命令后,make会在当前目录下寻找名为GNUmakefile/makefile/Makefile的文件。

    2.会默认在文件中执行自上至下数的第一个目标,会把这个mytest这个文件作为最终目标文件

    3.如果文件不存在,会依赖后面的test.o,通过执行依赖方法,来生成目标文件。

    4.如果test.o不存在,make会在当前文件找目标为test.o的依赖文件,然后生成test.o,再生成mytest

    5.make会一层一层去寻找目标所对应的依赖关系,直到生成出最开始的第一个目标文件

    6.如果中途出现错误,最后被依赖的文件找不到,直接退出并且报错,make只管文件的依赖性

    以上为make指令输入之后的一系列执行原理

    stat [文件名] -- 可以查看这个文件的修改时间

    在modify也就是修改文件内容时间不发生变化时,make不可重复使用,一但文件有了内容上的修改,即可再次使用make,也就是第一个依赖文件要比第一个目标文件新

    三.目标与伪目标

    .PHONY关键字后面跟的就是伪目标

    伪目标的作用有两个:

    1.总是被执行的,也就是使目标对象无论如何都要被重新生成

    2.并不生成目标文件,只是为了执行一些指令

    make默认执行第一个目标文件,所以我们一般把目标写在最开始,伪目标写在后面,那么如何执行伪目标呢?

    make [伪目标名]

    例如:项目清理 --- 也就是删除生成的可执行程序

    使用指令:make clean

    同时,我们也是可以给第一个mytest目标设置成伪目标的,使其成为总是被执行的。

    四.一些扩展

    如果文件过多,我们是不是还要挨个输入gcc test1.c test2.c test3.c... -o mytest呢?尽管用了makefile,我们发现在写依赖方法的时候,还是要将这些文件名全部写一遍,有没有简介方法呢?这里就简要介绍一下makefile中的小技巧。

  • 相关阅读:
    Flutter dio Http请求之Cookie管理
    手机取证基础知识(一)
    【Leetcode小解析】正则表达式匹配
    Prometheus集成springboot(六)
    Python【list合并】
    1.4.26 实验26:华为综合ACL
    NSSM部署window服务
    【操作系统】文件管理(六)—— 文件存储空间管理
    Winform中加密时提示此实现不是Windows平台FIPS验证的加密算法的一部分
    Java 阿里云存储OSS,上传文件,删除文件
  • 原文地址:https://blog.csdn.net/Hello_World_213/article/details/126069285