Makefile

一:makefile命令规则
在这里插入图片描述
(1)targets:prerequlisites
command:
(2)targets:pererqulistes;command
command
eg:
clean
rm -r -f *.c *.o
clean 作为一个labe
rm …是command.

显示规则要求严格按照命令规则来书写。
make有自动命名推导功能。所以可以省略书写。比如clean没有说明依赖文件。-(make会在当前目录下或者是全局环境下自动推导出依赖文件)
而且clean是伪目标————只有执行make clean 的时候才会执行。
在clean中—> *,c中的“ * ”
是一个通配符:表示匹配全部的.c文件----->任意个字符(前面的东西你随意,只要后面是.c就行了)
在这里插入图片描述
2、变量的赋值
CC=gcc
就可以使用$(CC)替换gcc
在这里插入图片描述
3、自动化变量
在这里插入图片描述
eg;
test:test.o test.c test.h
gcc -o $@ $^
等义与:gcc -o test.o test test.h

3、目标文件搜索
VPATH:=src
文件在lib目录下搜索。
eg:
VPATH=src:ooo
test:test.o
gcc -o $@ $^
如果依赖文件不存在于当前目录下,那么他会去当前目录下的子目录下查找。

4、条件判断:
ifeq、ifneq 、ifdef 、ifndef

二、MAKEFILE伪目标。
伪目标的概念表示并不会生成目标文件但是会执行目标下的command
eg:
clean:
rm -f -r *.c *.o
但是如果当前目录下存在一个文件名为clean的文件,那么它就会表示生成目标文件clean由于没有依赖文件那么。就不会执行rm这个command。
我们可以通过申明一个伪目标这样就算目录下有重名文件。它也不会把clean隐式当成同名文件的目标
.PHONY:clean
clean:
rm -r -f *.c

三、函数调用
在这里插入图片描述
就是函数后面加参数

字符串替换函数:subst
字符串去空格函数:strip
查找字符串函数:findstring
文件操作函数:
取文件目录函数:
( d i r < a r g u m e n s > ) r e t : . / . . . . . . . . . . O B J = (dir <argumens>)ret:./.......... OBJ= dir<argumens>ret:./..........OBJ=

四、make命令的书写
-J 表示允许多条指令同时执行。同一时刻多核

五:文件包含
类似于头文件。
include<…>
会先去执行。。。。。的文件。

make嵌套时变量传递使用export:

六:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值