Makefile文件编写总结

Makefile文件编写总结

语法规则

一、显示规则:

1.目标文件:依赖文件
[TAB]指令
例子:

hello.i:hello.c
	gcc -E hello.c -o hello.i

含义为:通过gcc命令由“hello.c”文件得到“hello.i”文件。

2.第一个目标文件应为欲得到的最终目标
(自顶而下分解任务)

3.伪目标:
在“.PHONY:”后添加伪目标(即不会被创建文件的目标)及相应命令。
如:

.PHONY:
clean:
	rm -rf hello.o hello.i hello

其中第二行的伪目标名clean可随意起名,例子中在makefile文件目录下使用“make clean”命令可删除hello.o、 hello.i、 hello三个文件。

二、变量:

变量 =(替换) +=(追加) :=(恒等于)
使用变量: $(变量名) 替换
例子:

TAR = test
OBJ = test1.o test2.o
CC := gcc
$(TAR):$(OBJ)
	$(CC) $(OBJ) -o $(TAR)

例子含义:使用gcc编译器通过test1.o与test2.o两个文件生成test可执行文件。

三、隐含规则:

%.c %.o 任意的.c或.o文件
*.c *.o 所有的.c或.o文件
如:

%.o:%.c
	gcc -c %.c -o %.o

例子含义:使目录下所有的.c文件生成对应的.o文件。

四、通配符:

$@ : 所有的目标文件 
$^ : 所有的依赖文件 
$< : 所有的依赖文件的第一个文件
如:

test:test1.o test2.o
	gcc $^ -o $@

例子含义:使用test1.o test2.o两个文件生成test可执行文件。

例子

TAR = test
OBJ = test1.o test2.o test3.o
CC:=gcc
RMRF:=rm -rf

$(TAR):$(OBJ)
	$(CC) $^ -o $@
%.o:%.c
	$(CC) -c $^ -o $@
.PHONY:
clean:
	RMRF $(TAR) $(OBJ)

例子解释:
使用make命令时:

  1. 通过test1.c test2.c test3.c三个文件生成test1.o test2.o test3.o。
  2. 通过test1.o test2.o test3.o三个文件生成test可执行文件。

使用make clean命令时:
删除TAR与OBJ两个变量包含的文件,包括:test1.o test2.o test3.o三个文件以及test可执行文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值