标签:makefile
原文链接:https://blog.csdn.net/qq_38646470/article/details/79917494目标:依赖文件
$^ 代表所有依赖文件
$@ 代表所有目标文件
$< 代表第一个依赖文件
% 代表通配符
@指令:屏蔽指令
定义变量(变量大写)
变量名=值1 值2 ...
使用变量 $(变量名)
下来看事例:
假设我们有很多个文件(fun1.c fun2.c fun3.c main.h)
假设最后我们就想得到main一个文件
初级版:
.PHONY : clean
main : fun1.o fun2.o fun3.o main.o
gcc -g fun1.o fun2.o fun3.o main.o -o main
fun1.o : fun1.c main.h
gcc -Wall -c -g -o fun1.o
fun2.o : fun2.c main.h
gcc -Wall -c -g -o fun2.o
fun3.o : fun3.c main.h
gcc -Wall -c -g -o fun3.o
clean :
rm -rf *.o
精简版
.PHONY : clean
FM=fun1.o fun2.o fun3.o main.o
main : $(FM)
(前面一个tab键)gcc -g $^ -o $@
%.c : %.o
(前面一个tab键)gcc -c -g - Wall $< -o $@
clean :
(前面一个tab键)rm -rf *.o
看看测试效果:
当然Makefile 还有很多其他的用处,如需更深层次了解请看makefile深度解析
标签:makefile
原文地址:http://blog.51cto.com/13449864/2104815