曲径通幽论坛

标题: include 关键字 [打印本页]

作者: beyes    时间: 2011-1-21 18:24
标题: include 关键字
Makefile 使用 include 关键字可以把别的 Makefile 包含进来。include 的使用方法是:
include <filename>
make 命令执行时,它会找到所有 include 所指定的文件,并将它们的内容放置在当前的位置,这和 C 中的 #include 一样。如果 include 后只跟着一个文件名,那么 make 就会在当前的目录下查找,如果找不到,那么它会接着检查 make 命令执行时是否有 "-I" 或 "--include-dir" 参数。如果有指定该参数,那么 make 会按照参数指定的路径去查找相应文件。假如还没找到,那 make 会发出一个警告信息,但不会马上出现致命错误,它接下来还会继续载入其它文件。当 makefile 读取完成,make 会重试这些没有找到,或是不能读取的文件,如果这时候还是不行而且这个文件对 make 的最后成功是不可或缺的,那么 make 就会发出一条致命信息。
如果希望 make 不理会那些不存在或无法读取的文件,而继续执行,那么可以在 include 前加一个减号 "-",如:
-include <filename>
举例:
现有 1 Makefile 文件如下:
include include/version.mk
include include/subinclude/sublevel.mk
include include/patchinclude/patchlevel.mk
OBJTREE         := $(VERSION).$(SUBLEVEL).$(PATCHLEVEL)
all:
        @echo "$(OBJTREE)"
在上面的几个 mk 文件中分别定义了变量 VERSION = 1, SUBLEVEL = 2, PATCHLEVEL = 6 。
运行 make 输出:
$ make
1.2.6
试着将 version.mk 这个文件的可读权限去掉后再 make 一次:
$ chmod u-r include/version.mk
$ make
Makefile:1: include/version.mk: 权限不够
.2.6
试着在 nclude include/version.mk 前加一 "-" 号:
$ make
.2.6
没有再输出“权限不够”的警告信息。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2