makefile学习

makefile格式

makefile 中的我其他命令一般都是为第一行服务的

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

文件的名字要为 Makefile ,放在当前项目文件夹中。

makefile1

app : sub.c add.c mult.c div.c main.c 
	gcc sub.c add.c mult.c div.c main.c -o app

makefile2

app : sub.o add.o mult.o div.o main.o
	gcc sub.o add.o mult.o div.o main.o -o app

sub.o : sub.c
	gcc -c sub.c -o sub.o
add.o : add.c
	gcc -c add.c -o add.o
mult.o : mult.c
	gcc -c mult.c -o mult.o
div.o : div.c
	gcc -c div.c -o div.o
main.o : main.c
	gcc -c main.c -o main.o

这个规则可以记录更新时间,在编译过一次后,如果只修改了某一个.c文件,那么再次编译时只会对这个新修改的编译

makefile3

变量

1.自定义变量
变量名=变量值

var=hello
# 获取变量的值
$(var)

2.预定义变量
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 $@

模式匹配

%.o : %.c
// % : 通配符,匹配一个字符串
两个%匹配的时同一个字符串

%.o : %.c
	gcc -c $< -o $@
#定义变量
src=sub.o add.o mult.o div.o main.o
target=app
$(target) :$(src)
	$(CC) $(src) -o $(target)

%.o:%.c      # 统配一下所有的那几个 .o文件
	$(CC) -c $< -o $@   

GDB调试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值