vim中make/makefile

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

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

  • makefile:普通文本文件,记录了项目的流程构建规则

  • make:解释程序,到当前执行make命令的目录下寻找makefile文件,并且对makefile中记录的项目构建规则进行解释执行。

  • 大型工程,一个目标可能由成千上万个文件组成,要是哪个文件修改那么就要重新进行编译,但是文件很多呀,要是把所有文件再gcc main.c main2.c …-o main.h确实很麻烦,所以一般大型工程进行分步编译,gcc -c main.c -o main.o 每个文件-c生成一个到链接阶段的文件,然后最后再同意将.o文件进行统一编译,这样要是修改了哪个文件,最后就只需把那一个文件进行到链接阶段的编译,然后整体文件再编译就好了,但是这样分步编译文件太多也会很麻烦,所以make/makefile.

  • makefile编写规则: 生成文件名(目标对象):目标文件(依赖对象) …
    --------------------------- [tab] 执行语句
    make执行规则: 解释执行时,在makefile中准找目标对象(只寻找第一个对象),找到对象后,执行命令操作。

  • 如果有目标对象,判断目标对象是否存在,如果目标对象不存 在执行命令操作,生成目标对象。

  • 如果目标对象已经存在,判断是否有依赖对象

  • 没有依赖对象:直接报错,不需要生成

  • 如果有依赖对象:判断依赖对象是否存在?

  • 依赖对象存在:通过目标对象和依赖对象的最后一次修改时间 判断是否需要重新生成目标对象

  • 依赖对象不存在:这时候make继续在makefile中继续寻找依赖 对象的生成规则,先生成依赖对象,再生成目标对象。

  • 类似于递归创建:

  • 在这里插入图片描述
    预定义变量

  • $@(目标对象)

  • $^(所有依赖对象)

  • $<(依赖对象中的第一个)

.PHONY用于声明伪对象,不管目标对象是否最新,都要在生成一次。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值