makefile项目管理-2个函数和3个变量

1、2个函数

(1)src=$(wildcard ./*.c)

                匹配将当前文件夹中所有.c文件。将文件名组成列表赋值给变量src。

(2)obj=$(patsubst %.c,%.o,$(src))

                将参数3($(src))中,包含参数1(%.c)的部分,替换为参数2(%.o)。

假如当前文件夹下存在文件:ax.c,bx.c,cx.c

那么:src=ax.c bx.c cx.c

            obj=ax.o bx.o cx.o

这两个函数的作用,在写makefile文件时,可以不用把所有依赖名都写上,而是采用参数的形式替换掉依赖文件名,可以防止依赖写错写漏掉问题,并且易于扩展更新

注意:函数不属于命令,可以写在ALL:命令前面。

2、命令补充:clean

 这个命令的作用是用于删除执行过程中生成的不必要文件,并且make的时候也不会执行,需要执行make clean命令才会执行。具体使用请先百度。

举一个rm例子:

clean:
	-rm -rf $(obj)  

删除变量obj的所有文件,其中rm前面的-的作用是,即使发生错误,也不会报错,用作是即使obj里面有一些文件可能已经被删除了,也不会报错,进行执行rm删除命令。

一般中执行make clean前,会先执行一次make clean -n,这个命令会把你make clean会执行的命令显示出来。

3、3个自动变量

$@       :在规则的命令中表示目标

hello:hello.c
    gcc hello.c -o hello
#通过$@变量可以写成这样
hello:hello.c
    gcc hello.c -o $@

注意:只能在命令阶段用该变量

$<        :在规则的命令中,表示第一个依赖条件

关于$<需要补充一点:如果将该变量应用在模式规则中,它可将依赖条件列表中的依赖依次取出,套用模式规则(模式规则下面会解释)。        

$^        :在规则的命令中,表示所有依赖条件

复习命令规则语法:

目标:依赖
(一个tab)命令

4、makefile其他补充

模式规则和静态模式规则:

大致意思就是使用通配符去替换文件名,易于维护更新代码。

因为makefile属于目标驱动行编译,在编译目标代码时,缺少哪些依赖就去下面的命令寻找产生该依赖的命令。

这玩意有点不知道怎么解释,我怕解释不清楚,所以建议有需求的去百度一下。 

伪目标:

        .PHONY:clean ALL

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值