开始编写Makefile(三)Makefile的默认模式规则

本文详细介绍了Makefile的使用方法,包括默认模式规则、后缀规则等,并通过具体案例展示了如何利用模式规则和常规规则进行编译。同时,还讲解了make如何遍历依赖关系以确定构建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.make中建立的其他语言的规则

SCCS  , RCS , ar, lex 和yacc 命令

2.为了建立一个目标,make会遍历一连串的依赖关系;这个是为 决定何处开始创建;

如果没有找到目标文件;make按照有限顺序查找源文件

3.了了生成目标文件,它首先查找带有(*.c,*.f或*.s)后缀的文件,如果一个都没有找到,它会继续寻找带*.c的后缀文件并继续搜搜;

直到找到一个源文件。如果没有找到一个源文件;make就会报告一个异常。

一、默认模式规则GUN make

%是通用匹配符即通配符

1 %.o:%c:
2     $(CC) $(CFLAGS) -c $<

二、默认的后缀规则

SUFFIXES:.o.c.s
.c.o
    $(CC) $(CFLAGS) -c $<

 

  

 

示例:Makefile 案例文件

 1 ###############定义变量##################
 2 CC:=gcc
 3 CFLAGS:=-Iinclude
 4 CFLAGS+= -c
 5 TARGET:=bin/mymath_test
 6 DEPEND:=obj/mymath.o
 7 DEPEND+=obj/mymath_test.o
 8 
 9 $(TARGET):$(DEPEND)#开始执行
10     $(CC) -o $@ $^
11 
12 #############采用模式规则编译###########
13 obj/%.o:src/%.c
14     $(CC) -o $@ $(CFLAGS) $^
15 
16 
17 #############常规规则编译#################
18 #obj/mymath.o:src/mymath.c
19 #    $(CC) -o $@ $(CFLAGS) $^
20 #obj/mymath_test.o:src/mymath_test.c
21 #    $(CC) -o $@ $(CFLAGS) $^
22 #################################################################
23 
24 .PHONY:clean#指定clean是虚目标
25 ###################make clean 清除生成的文件######################
26 clean:
27     rm -fr $(TARGET) $(DEPEND)

 

转载于:https://www.cnblogs.com/wanglijun/p/8643602.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值