Linux基础 -- makefile文件

本文介绍了在Linux环境下,当项目包含多个源文件和头文件时,如何使用make和makefile来自动化编译过程。makefile定义了目标文件与源文件的依赖关系,以及编译规则。通过make命令,可以智能检测文件改动并仅编译必要的源文件,提高了编译效率。makefile包含显示规则、隐晦规则、变量定义等内容,其工作原理是检查目标文件的时间戳,决定是否需要重新编译。通过make clean可以清除可执行文件和中间目标文件。
摘要由CSDN通过智能技术生成

比如你有3个头文件a.h  b.h  c.h 和 3个源文件 main.c  fun.c  dun.c

main .c
#include “a.h”

fun.c
#include “a.h”
#include “b.h”

dun.c
#include “b.h”
#include “c.h”

如果修改了头文件c.h,源文件mian.c和fun.c不需要重新编译(不依赖 c.h),但必须重新编译dun.c;如果修改头文件b.h,又忘记编译源文件fun.c,则程序可能无法正常工作

 

为解决上述问题,就有了 make 工具,在必要时重新编译所有受到改动的源文件。make命令内置了很多的智能机制,但无法建立程序,所以必须提供一个makefile文件,告诉它应用程序如何构造。

 

makefile文件一般都和项目的其他源文件放在同一目录下。由一组依赖关系和规则构成,依赖关系由一个目标(即将要建的文件:单独的可执行文件)和该目标依赖的源文件组成,规则描述了如何通过依赖关系创建目标。

上例中依赖关系列表如下
myapp:	main .0	fun.o	dun.o
main.o:	main.c	a.h
fun.o:	fun.c	a.h	b.h
dun.o	dun.c	b.h	c.h

主要包括五方面内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值