形式
target ...:prerequisites ...
command
...
...
: 之后无依赖
如果冒号后什么没有,那么make就不会自动去找它的依赖性,也就不会自动执行其后所定义的命令。 要执行其后的命令,就要在make命令后明显得指出这个label的名字。这样的方法非常有用,我们可以在一个makefile中定义不用的编译或是和编译无关的命令,比如程序的打包,程序的备份,等等
clean
.PHONY : clean
clean :
-rm edit $(objects)
- 使用减号的目的是:当某些文件出现问题时,不退出,忽略继续执行后面的命令。
-file参数
指定makefile文件:make -file makelinux
include <…/dir/makefile>
在include前面可以有空格,但是不能有Tab健( [Tab]字符告诉make此行是一个命令行。 )
如果文件都没有指定绝对路径或是相对路径的话,make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找:
- 如果
make执行时,有-I或—include-dir参数,那么make就会在这个参数所指定的目录下去寻找。 - 如果目录
<prefix>/include(一般是:/usr/local/bin或/usr/include)存在的话,make也会去找。
Makefile的退出
- 如果出现错误,比如被依赖的文件找不到,那么make就会直接退出,并报错。
- 而对于所定义的命令的错误,或是编译不成功,make根本不理。
make只管文件的依赖性,即如果冒号后面的依赖文件不存在,那么Makefile退出。
生成多个执行文件
all:prog1 prog2 prog3
.PHONY all
本文深入讲解Makefile的高级用法,包括目标、依赖项、命令的定义,如何处理多个执行文件,以及如何定义和使用PHONY目标进行清理操作。同时介绍了make命令的参数设置和include指令的使用,帮助读者理解Makefile的执行流程和错误处理机制。
6442

被折叠的 条评论
为什么被折叠?



