Linux学习心得(3)---makefile

本文深入讲解Makefile的基础概念,包括其作为自动化编译工具的角色、语法结构、变量使用及函数功能,通过实例演示如何高效利用Makefile进行项目编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LINUX Makefile

makefile概述
makefile是指定工程编译规则的程序。就像一个shell脚本一样,也可以执行操作系统的命令。

自动化编译:写好makefile程序后,只需一个make命令,完全自动编译。make是一个解释makefile中指令的命令工具。

makefile语法:由若干条规则组成,每条规则的语法结构:

target ... : prerequisites ...
<tab> command ... ...

每条规则由依赖关系和命令两部分组成。
Target是目标文件,还可以是一个标签(Label),prerequisites(前提,先决条件))就是要生成那个target所需要的文件或是目标。command也就是make需要执行的命令。(任意的Shell命令)

make命令语法:make [选项][目标] ]
功能:创建指定目标,如果没指定目标,创建第一个目标。Make默认的规则定义文件是GNUmakefile、makefile或Makefile,否则使用-f指定文件。
常用选项:
-f file 指定规则文件
-C dir 读取规则文件前进入指定目录dir

多文件makefile的更新原理(基于时间):
在这里插入图片描述

makefile变量
1)自定义变量:将字符串赋给变量名,在makefile变量无数据类型。
语法:变量名=字符串
引用:$(变量名)
2)环境变量:make在运行过程中将环境变量转换为同名同值的make变量,用户也可在makefile中对这些变量进行重新定义。
3)预定义变量:
在这里插入图片描述
4)自动变量:
在这里插入图片描述
makefile中的函数(都是有返回值)
1)wildcard 查找当前目录下所有.c文件,返回值给src。
src =$ (wildcard ./*.c)
2)patsubst 替换所有.c文件为.o文件。
obj=$(patsubst ./%.c, ./%.o, $(src))

make clean
清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。

例子:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值