makefile

makefile 三要素:

        目标

        依赖

        规则命令

写法:

目标:依赖

  规则命令

 

v1:

 

 

 缺点: 如果更改其中一个文件,所有源码都需要重新编译

可以考虑编译过程分解,先生成.o文件,使用.o文件得到结果

v2:

 

 

 这样做的话,如果改变main.c,只需重新编译main.c, add.c sub.c无需重新生成.o文件

 

函数:wildcard 进行文件匹配

     patsubst 内容替换

wildcard用法:

 

 

 

 

 

 patsubst用法:

 

 

 

 

 

makefile的变量:

        1. $@ :目标

        2. $^ :全部依赖

        3. $< :第一个依赖 

        4. $? :第一个变化的依赖

v3:

 

 注意: $@,$^这样的变量只能在规则中出现

 

增加删除功能:

v4:

 

 make clean

 

 

 若不想让命令出现在终端,前面加一个@

 

 

 前面加-号,表示如果此条语句报错,仍然执行后面语句

 

 

 .PHONY 表示clean是一个伪目标,即使当前目录下有clean这个文件,也不会把这个文件当成目标。防止歧义。

 

若还想同时生成一个其他app

 

 

 

 简洁:make

若makefile文件名为x, 则 make -f x

若为makefile, 则直接 make 即可

 

posted @ 2020-02-20 17:57  feibilun  阅读(102)  评论(0编辑  收藏  举报