首页 > 其他 > 详细

Makefile 简易教程

时间:2021-05-23 23:24:14      阅读:17      评论:0      收藏:0      [点我收藏+]

Makefile 就像是一个Shell脚本一样,通过批量处理,来完成自动化编译

Makefile 基本规则

目标:依赖
(tab缩进)命令

一、下面是最简易的makefile文件

技术分享图片

修改一个文件,所有的文件都需要重新编译

二、根据makefile的工作原理

  1. 自动检查依赖是否存在,不存在则向下搜索规重新编译或报错
  2. 存在则检查依赖是不是最新状态,不是则更新

技术分享图片

但是此方法当依赖较多时比较麻烦

三、引入变量

普通变量

直接使用=进行赋值,使用$(变量名)引用

var=abc
var2=$(var)

自带变量

CC = gcc #arm-linux-gcc
CPPFLAGS : C预处理的选项 -I
CFLAGS:   C编译器的选项 -Wall -g -c
LDFLAGS :  链接器选项 -L  -l

自动变量

$@ 表示规则中的目标
$< 表示规则中的第一个条件
$^ 表示规则中所有条件

同时可以使用%作为通配符直接代表目标名和依赖名,但需注意,%代表一个或多个同时目标和依赖名必须一致
技术分享图片

makefile函数

常用的两个

1. wildcard – 查找指定目录下的指定类型的文件
src=$(wildcard *.c)  //找到当前目录下所有后缀为.c的文件,赋值给src
2. patsubst – 匹配替换
obj=$(patsubst %.c,%.o, $(src)) //把src变量里所有后缀为.c的文件替换成.o

技术分享图片

makefile的清理工作

当程序编译完成后,文件夹中还存在很多编译过程中生成的预编译文件,最后一步就是清理这些文件
技术分享图片

Makefile 简易教程

原文:https://www.cnblogs.com/cokefentas/p/14802242.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!