makefile知识点整理(持续不断更新)

来源:互联网 发布:php后台admin 编辑:程序博客网 时间:2024/06/09 15:13

1.targets : prerequisites
command
2.通配符
3.变量,使用$(变量)来引用
4.VPATH make寻找文件的依赖关系时

5.makefile的文件名
包含其他makefile文件

6.
clean编译和链接生成了很多文件,如果重新编译就需要提供命令脚本.
.PHONY: clean
clean:
rm *.o temp
clean是伪目标.

7.多目标

8.自动化变量 $@
静态模式,展示了很强大的特性.

9.显示makefile中的命令 make -n

10.命令的执行
如果你要让上一条命令的结果应用在下一条命令时,你应该使用分号分隔这两条命令。

11,命令运行后,make会检测每个命令的返回码,如果成功则继续执行,如果失败则返回.
如果想忽略命令的错误,继续想下执行,有几个版本.比如在命令前加上”-“

12.在一些大的工程中,我们会把我们不同模块或是不同功能的源文件放在不同的目录中,我们可以在每个目录中都书写一个该目录的Makefile,这有利于让我们的Makefile变得更加地简洁,对于工程的后续维护也很有意义.

还有一个在“嵌套执行”中比较有用的参数,“-w”或是“–print-directory”会在make的过程中输出一些信息,让你看到目前的工作目录。比如,如果我们的下级make目录是“/home/hchen/gnu/make”,如果我们使用“make -w”来执行,那么当进入该目录时,我们会看到:
make: Entering directory /home/hchen/gnu/make'.
而在完成下层make后离开目录时,我们会看到:
make: Leaving directory
/home/hchen/gnu/make’
当你使用“-C”参数来指定make下层Makefile时,“-w”会被自动打开的。如果参数中有“-s”(“–slient”)或是“–no-print-directory”,那么,“-w”总是失效的。

13.变量的定义和使用
= 和 :=

14.变量替换技术
foo := a.o b.o c.o
bar := (foo:.o=.c)foo:=a.ob.oc.obar:=(foo:%.o=%.c)

makefile还有很多高级的技巧,我目前用到的比较少,以后碰到makefile的高级使用技巧再更新到文章中来.

0 0
原创粉丝点击