初识makefile的结构

初识makefile的结构

1、makefile的意义

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

依赖的定义:

targets : prerequisites ; command1
	command2

2、makefile中的元素含义

  • tartgets
    • 通常是需要生成的目标文件名
    • make所需执行的命令名称
  • preprequisities
    • 当前目标所以依赖的其他目标或者文件
  • command
    • 完成目标所需要执行的命令

3、规则中的注意事项

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

4、一个makefile的依赖示例

all:test
	echo "make all"
test:
	echo "make test"

5、依赖规则

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

6、小技巧

makefile中可以在命令前加上**@符,作用为命令无回显**。

7、编程实验


all : test
	@echo "make all"
test : 
	@echo "make test"
	
//编译
$ make
make test
make all
$ make test 
make test

8、第一个make的编译案例

hello.out : main.o func.o
	gcc -o hello.out main.o func.o
main.o : main.c
	gcc -o main.o -c main.c
func.o : func.c
	gcc -o func.o -c func.c

Slide10

9、小技巧

工程开发中可以将最终可执行文件名all同时作为makefile中第一条规则的目标。

hello.out all : main.o func.o
	gcc -o hello.out main.o func.o

10、小结

  • makefile用于定义源文件间的依赖关系
  • makefile说明如何编译各个源文件并生成可执行文件
  • makefile中的目标之间存在连续依赖关系
  • 依赖存在并且命令执行成功是目标完成的充要条件
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值