包含其他makefile的意思是?“include” 关键字符所在的行首问题是?

来源:创视网 时间:2023-02-08 16:50:57

包含其他makefile

makefile中的include关键字是用来包含其他makefile文件的,当一个工程很大的时候,每个模块都会有一个独立的makefile来描述对应模块的编译规则,那么需要定义一组通用的变量定义或者模式规则来维护整个工程的统一,然后需要的时候,每个模块的makefile再include进来这个统一的通用makefile。

include就相当于C语言中的#include,当make读取到当前makefile中的include关键字的时候,会暂停读取当前的makefile,进而转去读取include中包含的makefile文件,读取包含的makefile文件之后,再回来继续读取当前的makefile文件。

“include” 关键字符所在的行首

注意:“include” 关键字所在的行首可以包含一个或者是多个的空格(读取的时候空格会被自动的忽略),但是不能使用 Tab 开始,否则会把 “include” 当作式命令来处理。包含的多个文件之间要使用空格分隔开。使用 “include” 包含进来的 Makefile 文件中,如果存在函数或者是变量的引用,它们会在包含的 Makefile 中展开。

说白了,就是原封不动的将被包含的makefile文件展开在当前makefile文件中包含被包含文件的位置。

make命令开始时,会找寻include所指出的其它Makefile,并把其内容安置在当前的位置。就好像C/C++的#include指令一样。如果文件都没有指定绝对路径或是相对路径的话,make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录:

执行 make 命令的时候加入的选项 “-I” 或 “–include-dir” 后面添加上指定的路径

其他的几个路径中搜索:“usr/gnu/include”、“usr/local/include” 和 “usr/include”。

如果在上面的路径没有找到 “include” 指定的文件,make 将会提示一个文件没有找到的警示提示,但是不会退出,而是继续执行 Makefile 的后续的内容。当完成读取整个 Makefile 后,make 将试图使用规则来创建通过 “include” 指定但不存在的文件。当不能创建的时候,文件将会保存退出。

X 关闭

Copyright   2015-2022 科技讯版权所有   备案号:豫ICP备2021032478号-15   联系邮箱:897 18 09@qq.com