Makefile的编写快速入门
在学习Linux下使用C语言编程的时候,我们需要为自己的项目编写一个Makefile文件,利用Linux中make命令工具来编译生成一个可执行程序,但是,在更换项目的同时,我们又需要重新编写Makefile文件,所以我们需要一种通用的Makefile文件,每个项目都可以使用同一Makefile文件。
一、Makefile编写须知
1. 使用make---Linux自带的构建器
2. Makefile文件命名:Makefile/makefile
3. Makefile中的规则:
.目标、依赖、命令
4. Makefile的写法:
目标:依赖
(tab缩进)命令
5. 自动变量
$@:当前规则中的目标
$<:当前规则中的第一个依赖
$^:当前规则中的所有依赖
只能在规则的命令中使用
6. 模式匹配
%.o:%.c
%.o所有.o文件
%.c所有.c文件
二、简单的Makefile的编写
target:x.c y.c z.c
gcc x.c y.c z.c -o target
三、通用Makefile的编写
#生成目标需要的所有依赖
obj = x.o y.o z.o
target = app
$(target):$(obj)
gcc $(obj) -o $(target)
#用模式匹配生成每一个依赖
%.o:%.c
gcc -c $< -o $@
#.PHONY声明伪目标,rm之前的-为忽略执行命令产生的错误继续往下执行
#-f为强制删除,不提示找不到某文件的信息
.PHONY:clean
clean:
-rm $(obj) $(target) -f
在更换项目时只需要更改相应的依赖(更改obj的值),再进行make即可。
伪目标声明是为了文件目录不会有对应名称的文件对meke构建造成影响。
四、使用
1.make
2.make clean