【Linux】Linux项目自动化构建工具

make/Makefile

一个工程中的源文件较多,编程时较复杂,makefile定义了一系列规则来指定,那些文件需要先编译,哪些需要后编译,以及其他操作。
makefile是自动化编译,写好后使用make命令,整个工程自动编译,增大了开发的效率。
make是一个命令,是解释makefile中指令的命令工具。
makefile是一个文件,其中包含一个依赖关系,一个依赖方法。

原理
  • make会在当前目录下找makefile或Makefile的文件;
  • 如果找到,他会找到文件中的第一个目标文件;以hello为例。
  • 若hello文件不存在,或文件所依赖的后面的hello.o文件的文件修改时间要比hello文件新,那么,他就会执行后面所定义的命令生成hello文件;
  • 如果文件所依赖的hello.o文件不存在,那么make会在当前文件中找目标为hello.o文件的依赖性,如果找到则根据规则再根据那一个规则生成hello.o文件;
  • C文件与H文件存在,于是make会生成hello.o文件,然后再用hello.o文件声明make的终极任务,也就是执行文件hello了;
  • make会一层又一层的找文件的依赖关系,直到最终编译出一个目标文件;
  • 在编译过程中,若出现错误,make会直接退出,并报错,对于所定义的命令的错误,或编译不成功,make根本不理;
  • make只管文件的依赖性。
依赖关系

以sum.c为例
sum依赖sum.o
sum.o依赖sum.s
sum.s依赖sum.i
sum.i依赖sum.c

依赖方法

gcc sum.* -option sum.*

项目清理

.PHONY为伪目标,特性是总是被执行的。
在这里插入图片描述

make命令编译

在这里插入图片描述

make clean清理

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值