1. include 关键字
-
makefile 中的 include 关键字
+ 类似C语言中的 include 将其它文件的内容原封不动的搬入当前文件 语法: inlcude foo.make // 将 foo.make 文件中的内容搬入此makefile我呢见 include *.mk // 将以mk结尾的文件搬入此 makefile 文件中 include $(var) // 使用变量代替文件名
-
mkae 对 include 关键字的处理方式
+ 在当前目录或指定目录中搜索或指定目录搜索目标文件 + 搜索成功:将文件内容搬入当前 makefile 中 + 搜索失败:产生警告。并以文件名作为目标查找并执行对应规则,当文件名对应的规则不存在时,最终产生错误
2. 示例分析
下面的代码有没有问题?
.PHONY : all
all :
mkdir test
cd test
mkdir subtest
结果:在当前目录中生成了 test 和 subtest两个文件夹,和我们预期的不一样
makefile 中命令的执行机制:
- 规则中的每个命令默认是在一个新的进程中执行 ( Shell )
- 可以通过接续符
;
将多个命令组合成一个命令 - 组合的命令依次在同一个进程中被执行
- set -e 指定发生错误后立即退出执行
示例改进&#