响应式网站是,移动端开发工具,用ps做网站首页顶部图片,wordpress标签随机调用概述 在一个大的工程文件中#xff0c;不同的文件按照功能被划分到不同的模块中#xff0c;每个模块可能都会有自己的编译顺序和规则。如果在一个 Makefile 文件中描述所有模块的编译规则#xff0c;就会显得很杂乱#xff0c;执行时也会很不方便。 如果在不同的模块中分别…概述 在一个大的工程文件中不同的文件按照功能被划分到不同的模块中每个模块可能都会有自己的编译顺序和规则。如果在一个 Makefile 文件中描述所有模块的编译规则就会显得很杂乱执行时也会很不方便。 如果在不同的模块中分别对它们的规则进行描述即每一个模块都编写一个 Makefile 文件这样不仅方便管理而且可以迅速发现模块中的问题。我们只需要在总的Makefile中控制其他模块中的 Makefile就可以实现总体的控制。 这就是 make 的嵌套执行。 举例 subsystem:cd subdir $(MAKE) 说明在当前目录下有一个 subdir 文件夹 和一个 Makefile 文件subdir 文件夹中也有一个 Makefile 文件它用来描述这个子目录文件的编译规则。使用时只需要在最外层的目录中执行 make 命令当命令执行到上述的规则时程序会进入到子目录中执行 make。这就是嵌套执行 make我们把最外层的 Makefile 称为是总控 Makefile。 上述的规则也可以换成另外一种写法 subsystem$(MAKE) -C subdir 在 make 的嵌套执行中我们需要了解一个变量 CURDIR此变量代表 make 的工作目录。当使用 make 的选项 -C 的时候命令就会进入指定的目录中然后此变量就会被重新赋值。总之如果在 Makefile 中没有对此变量进行显式的赋值操作那么它就表示 make 的工作目录。我们也可以在 Makefile 中为这个变量赋一个新的值重新赋值后的这个变量将不再代表 make 的工作目录。 export的使用 使用 make 嵌套执行的时候需要注意变量是否传递。 如果需要传递变量那么可以这样 export variable 如果不需要传递变量可以这样来写 unexport variable 如果所有的变量都需要传递那么只需要使用 export 就可以不需要添加变量的名字。 注意variable是变量的名字不需要使用 $ 这个字符。 Makefile 中有两个变量即 SHELL 和 MAKEFLAGS不管是否使用关键字 export 声明它们总会传递到下层的 Makefile 中。 MAKEFLAGS 变量包含了 make 的参数信息。如果执行总控 Makefile 时make 命令带有参数或者在上层的 Makefile 中定义了这个变量那么 MAKEFLAGS 这个变量的值将会是 make 命令传递的参数并且会传递到下层的 Makefile 中这是一个系统级别的环境变量。 make 命令中有几个参数选项并不传递它们是:-C、-f、-o、-h 和 -W。如果我们不想传递 MAKEFLAGS 变量的值在 Makefile 中可以这样来写 subsystem:cd subdir $(MAKE) MAKEFLAGS