linux--关于makefile

makefile文件

可以指定编译顺序,这样方便一个项目的多个文件要编译的挨个操作的麻烦。
makefile文件的命名:makefile 或者 Makefile 必须是这俩,系统才能识别

规则的书写语法如下:

一个makefile内可以有多个规则

目标:依赖a 依赖b ...
	命令(shell命令)

命令前面一定要插入制表符Tab

makefile文件的工作原理

  • 一般来讲下面的规则都是为第一条规则服务的
  • 先检查所需的依赖是否存在,不存在就查找下面是否有生成依赖的规则
  • 可以根据文件的时间更新目标,例如依赖的时间比生成过的目标晚,那么证明依赖更新过,会重新运行对应依赖的生成文件以及重新生成规则一的目标

关于makefile中的变量

自定义变量:
变量名=变量值
预定义变量:
AR:归档维护程序的名称,默认ar
CC:C编辑器的名称,默认cc
CXX:C++编辑器的名称,默认为g++
$@:目标的完整名称(包含其文件类型)
$<:第一个依赖文件的名称
$^:所有的依赖文件
获取变量的值的语法:
$(变量名)

示例:

app:main.c a.c b.c
	gcc -c main.c a.c b.c -o app
变为:
app:main.c a.c b.c
	$(CC) -c $^ -o $@

标题更厉害简化的写法,不用每一行每一行写文件的gcc -c 输入 输出

wildcard和patsubst是函数
在这里插入图片描述
这里第二个框写错了,应该是$(CC) -c $< -o $@
然后直接(红色是命令,黄色是输出):
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值