• 【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中的小技巧。

  • 相关阅读:
    智慧医院解决方案
    16.左侧导航菜单制作
    spdlog 封装为 DLL
    从实战出发带你搞懂AXI4 (一、AXI4协议解析)
    使用Navicat将服务器的Oracle数据库备份到本地(Windows版本)
    【IOS-初学】利用分段选择器和滑动开关(条)等等实现简单的图片浏览器-透明度和图片切换功能
    在Python中求解定积分scipy.integrate.quad()方法
    Chapter7.4:线性离散系统的分析与校正考研参考题
    npm install一直卡着不动
    持续创作,还得靠它!
  • 原文地址:https://blog.csdn.net/Hello_World_213/article/details/126069285