项目管理工具Make

一、Make工程管理工具

1)概念


工程管理: 主要功能指的就是就是编译工程,生成最终的二进制可执行文件。

Make是一个项目管理工具,make需要一个配置文件Makefile才可运行出实际的工程管理效果,Makefile是用来配置make指定编译选项(编译器、编译文件、目标文件)、编译环境(头文件路径、库名字、库的路径、安装第三方插件…)等

2)使用Make的优势


毫无疑问,在基于项目源码文件多达成千上万个时,如果重新编译项目需要耗费很长的时间。编译耗时2、3个小时是很正常的情况。而使用Make编译项目减少时间的消耗,Make会根据每个源码文件的更新时间戳判断该文件是否更新,如果跟新了则从新编译改文件,其他没更新的文件则从.o文件进行编译。

3)Makefile的编写规范


注:Makefile中,如果是该行是脚本命令,则该行前要打制表符(TAB),make才会识别这一行是脚本命令。
书写规则:
    目标文件:依赖文件
    制表符脚本命令
① 第一版本

main:xxx.o
	gcc xxx.o -o main
xxx.o:xxx.c
	gcc -c xxx.c -o xxx.o

clean: #伪命令
	rm xxx.o
② 第二版本 (make会自动推导编译生成.o文件)

main:xxx.o
	gcc xxx.o -o main
clean:
		rm xxx.o -rf
③ 第三版本 (多个.c文件)

main:hello.o world.o
	gcc hello.o world.o -o main
	
hello.o:hello.c
	gcc -c hello.c -o hello.o
world.o:world.c
	gcc -c world.c -o world.o

clean:
	rm hello.o world.o -rf
④ 第四版本(自动搜索替换)

SRCS=$(wlidcard *.c)  #获取当前工作目录中所有.c文件(拓展通配符)
OBJS=$(patsubst %.c,%.o,$(SRCS))
CC  = gcc
TARGET=main

main:$(OBJS)
	gcc $(OBJS) -o main
	
%.o:%.c   
	gcc -c $(^) -o $($)  # ^依赖列表 $:目标列表
clean:
	rm $(OBJS) $(TARGET)
⑤ 分析-----%.o:%.c

静态模式的表达:定义多目标的规则,可以根据目标文件构造出依赖文件。

前面%.o指定的结尾为.o的文件集合,同时对后面的依赖文件位置进行第二次定义,把%给 依赖文件并且结尾加上.c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值