曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4047|回复: 0
打印 上一主题 下一主题

include 关键字

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2011-1-21 18:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
没有再输出“权限不够”的警告信息。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 01:25 , Processed in 0.074650 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表