02 - Makefile 的结构

---- 整理自狄泰软件唐佐林老师课程

1. Makefile 的结构

1.1 Makefile 的意义

  • Makefile 用于定义源文件间的依赖关系
  • Makefile 说明如何编译各个源文件并生成可执行文件

1.2 Makefile 中的元素定义

在这里插入图片描述

1.2.1 目标 targets

通常是需要生成的目标文件名
make 所需执行的命令名称

1.2.2 依赖 prerequisites

当前目标所依赖的其它目标或文件

1.2.3 command

完成目标所需要执行的命令

1.2.4 注意事项

  1. targets 可以包含多个目标
    使用空格对多个目标名进行分隔
  2. prerequisites 可以包含多个依赖
    使用空格对多个依赖进行分隔
  3. [Tab] 键:\t
    每一个命令行必须以 [Tab] 字符开始
    [Tab] 字符告诉 make 此行是一个命令行
  4. 续行符:
    可以将内容分开写到下一行,提高可读性

2. 依赖

2.1 一个 Makefile 的依赖示例

【02 makefile结构/00/Makefile】

all: test
	echo "make all"

test:
	echo "make test"

在这里插入图片描述

2.2 依赖规则

当目标 targets 对应的文件不存在,执行此命令
当依赖 prerequisites 在时间上比目标 targets 新,执行此命令
当依赖 prerequisites 关系连续发生时,对比依赖链上的每一个目标

  • Makefile 中可以在命令前加上 @ 符号,作用为命令 command 无回显

【02 makefile结构/01/Makefile】

all: test
	@echo "make all"

test:
	@echo "make test"

在这里插入图片描述

3. 第一个 make 的编译案例

在这里插入图片描述

【02 makefile结构/02/Makefile】

在这里插入图片描述

  • 工程开发中可以将最终可执行文件名和 all 同时作为 Makefile 中第一条规则的目标。
hello.out all : main.o func.o
	gcc -o hello.out main.o func.o

【02 makefile结构/03/Makefile】
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式wu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值