Makefile 的编写

今天学习一下Make file的编写,make工具是用于多文件的编译的汇编工具。好处在于,当使用make编译过一次程序后,会记录每一个文件的时间戳,当修改某些文件后,再次使用make工具编译时,他只会编译修改过时间戳的文件这样相比gcc *.c节省了大量的时间,另外,make可以有选择性的对指定的文件进行编译。
make工具需要自己去写,一般文件的名称为Makefile
**编写Makefile文件**

第一版本:

#目标文件:依赖文件
#tab gcc具体的编译流程
main:main.o doublelist.o mymath.o    
	gcc main.o doublelist.o mymath.o -o main
main.o:main.c    
	gcc -c main.c -o main.o
doublelist.o:doublelist.c doublelist.h    
	gcc -c doublelist.c -o doublelist.o
mymath.o:mymath.c    
	gcc -c mymath.c -o mymath.o

第二版本:

CC=gcc
#CC=arm-linux-gcc
OBJ=main
FILE=main.o doublelist.o mymath.o
#附加编译选项#-Wall:显示所有警告
#-g:用于gdb调试
#-O2:优化最终生成的可执行文件
#-c:汇编阶段所需
CFLAGS=-Wall -g -O2 -c
$(OBJ):$(FILE)    
	$(CC) $(FILE) -o $(OBJ)
main.o:main.c    
	$(CC) $(CFLAGS) main.c -o main.o
doublelist.o:doublelist.c    
	$(CC) $(CFLAGS) doublelist.c -o doublelist.o
mymath.o:mymath.c    
	$(CC) $(CFLAGS) mymath.c -o mymath.o
clean:    
	$(RM) $(FILE) $(OBJ)

第三版本:
$@ 目标名
$< 依赖文件列表中的第一个文件
$^ 依赖文件列表中除去重复文件的部分

CC=gcc
#CC=arm-linux-gcc
OBJ=main
FILE=main.o doublelist.o mymath.o
#附加编译选项
#-Wall:显示所有警告
#-g:用于gdb调试
#-O2:优化最终生成的可执行文件
#-c:汇编阶段所需
CFLAGS=-Wall -g -O2 -c
$(OBJ):$(FILE)    
	$(CC) $^ -o $@
main.o:main.c    
	$(CC) $(CFLAGS) $< -o $@
doublelist.o:doublelist.c    
	$(CC) $(CFLAGS) $< -o $@
mymath.o:mymath.c    
	$(CC) $(CFLAGS) $< -o $@
clean:    
	$(RM) $(FILE) $(OBJ)

第四版本:

CC=gcc
OBJ=main
FILE=main.o doublelist.o mymath.o
CFLAGS=-Wall -g -O2 -c
$(OBJ):$(FILE)    
	$(CC) $^ -o $@
%*.o:%*.c    
	$(CC) $(CFLAGS) $< -o $@
clean:    
	$(RM) $(FILE) $(OBJ)

使用:
在终端直接敲:make
如果要删除.o和可执行文件:make clean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路漫漫其远,吾求索

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值