makefile
https://blog.csdn.net/weixin_38391755/article/details/80380786
基本语法:
1,目标文件:顶格冒号前面,代号$@
2,依赖文件:冒号后面,代号$<(第一个依赖) $^(全部依赖)等等
3,命令:一个Tab后面,像 gcc -o target file1.cc file2.cc,或者shell
4,命令前面的@:让命令不显示在终端
5,宏定义:最前面的等式,像cc = gcc list = aaa bbb ,引用时$(cc),引用shell的变量用$$xx
使用:
make target
TIP1:For循环的括号
makefile编辑成下面这样,输出./aaa ./bbb
list = aaa bbb test: @for i in $(list); do (cd ./$$i && pwd) ;done
makefile编辑成下面这样,输出./aaa ./aaa/bbb
list = aaa bbb test: @for i in $(list); do cd ./$$i && pwd ;done
TIP2:与依赖同名的Target
下面相当于定义了所有跟.cc同名的xxx.o的目标文件
%.o:%.cc
gcc -c $<
TIP3:同名文件复制
下面相当于把原字符串种的 xxx.cc都替换成 xxx.o, 输出 aaa.o bbb.o ddd
src = aaa.cc bbb.cc ddd obj = $(src:%.cc=%.o) clean: echo $(obj)
TIP4:用shell查询返回文件列表
src = $(shell find ./ -name "*.cc") clean: echo $(src)