makefile笔记-常用符号

常用符号

类型 符号 作用 描述
文件名通配符 * 匹配任意字符 *.c : 所有.c结尾的文件
? 匹配任意字符 包含空
常用符 \ 命令换行符
运算符 = 变量赋值 object = fi.o 用于所赋值的对象是常量
?= 为空赋值 若变量没有赋值,则给它赋值,否则不赋值
:= 变量赋值 object := ${tmp} 用于赋值是个变量
+= 追加赋值 object += tmp.o 将tmp.o追加到object
自动化变量 $@ 当前target 当前目标名
$< 第一个依赖名
$^ 所有依赖名 去重
target:d1 d2
则 $^=d1 d2
$+ 所有依赖名 不去重
$? 比目标新的依赖名
$* 目标中%匹配的部分 %.o:%.c 。有a.o目标时$*值为a
$(@D) 目标的目录部分 目标为tmp/test,$(@D)值为tmp
$(@F) 目标的文件部分 目标为tmp/test,$(@D)值为test
$(<D) 依赖文件的目录部分
$(<F) 依赖文件的文件部分
$(^D) 所有依赖文件的目录部分 去重
$(^F) 所有依赖文件的文件部分 去重
$(+D) 所有依赖文件的目录部分 不去重
$(+F) 所有依赖文件的文件部分 不去重
$(?D) 被更新的依赖文件的目录部分
$(?F) 被更新的依赖文件的文件部分
特别字符 % 任意匹配符 类似shell的 *
@ 不显示执行命令 command前加@后 不打印改条命令
- 出错不中断 command前加-,出现执行错误
不中断makefile编译

参考资料

Linux makefile 教程非常详细,且易懂


ps:如有问题 欢迎交流 愿与君共勉


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容