makefile详解 环境变量 工作方式 九
来源:互联网 发布:弗莱彻级驱逐舰数据 编辑:程序博客网 时间:2024/05/21 14:07
四、环境变量 MAKEFILES
如果你的当前环境中定义了环境变量MAKEFILES,那么,make会把这个变量中的值做一个类似于include的动作。这个变量中的值是其它的Makefile,用空格分隔。只是,它和include不同的是,从这个环境变中引入的Makefile的“目标”不会起作用,如果环境变量中定义的文件发现错误,make也会不理。
但是在这里我还是建议不要使用这个环境变量,因为只要这个变量一被定义,那么当你使用make时,所有的Makefile都会受到它的影响,这绝不是你想看到的。在这里提这个事,只是为了告诉大家,也许有时候你的Makefile出现了怪事,那么你可以看看当前环境中有没有定义这个变量。
五、make的工作方式
GNU的make工作时的执行步骤入下:(想来其它的make也是类似)
1、读入所有的Makefile。
2、读入被include的其它Makefile。
3、初始化文件中的变量。
4、推导隐晦规则,并分析所有规则。
5、为所有的目标文件创建依赖关系链。
6、根据依赖关系,决定哪些目标要重新生成。
7、执行生成命令。
1-5步为第一个阶段,6-7为第二个阶段。第一个阶段中,如果定义的变量被使用了,那么,make会把其展开在使用的位置。但make并不会完全马上展开,make使用的是拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖被决定要使用了,变量才会在其内部展开。
当然,这个工作方式你不一定要清楚,但是知道这个方式你也会对make更为熟悉。有了这个基础,后续部分也就容易看懂了。
如果你的当前环境中定义了环境变量MAKEFILES,那么,make会把这个变量中的值做一个类似于include的动作。这个变量中的值是其它的Makefile,用空格分隔。只是,它和include不同的是,从这个环境变中引入的Makefile的“目标”不会起作用,如果环境变量中定义的文件发现错误,make也会不理。
但是在这里我还是建议不要使用这个环境变量,因为只要这个变量一被定义,那么当你使用make时,所有的Makefile都会受到它的影响,这绝不是你想看到的。在这里提这个事,只是为了告诉大家,也许有时候你的Makefile出现了怪事,那么你可以看看当前环境中有没有定义这个变量。
五、make的工作方式
GNU的make工作时的执行步骤入下:(想来其它的make也是类似)
1、读入所有的Makefile。
2、读入被include的其它Makefile。
3、初始化文件中的变量。
4、推导隐晦规则,并分析所有规则。
5、为所有的目标文件创建依赖关系链。
6、根据依赖关系,决定哪些目标要重新生成。
7、执行生成命令。
1-5步为第一个阶段,6-7为第二个阶段。第一个阶段中,如果定义的变量被使用了,那么,make会把其展开在使用的位置。但make并不会完全马上展开,make使用的是拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖被决定要使用了,变量才会在其内部展开。
当然,这个工作方式你不一定要清楚,但是知道这个方式你也会对make更为熟悉。有了这个基础,后续部分也就容易看懂了。
- makefile详解 环境变量 工作方式 九
- Makefile详解-工作方式
- Makefile详解-环境变量MAKEFILES
- android makefile 工作方式
- 跟我一起写Makefile(7)--- 环境变量MAKEFILES+make的工作方式
- makefile详解 如何工作 三
- makefile详解 (九) make 的运行
- Linux之Makefile(Makefile的工作方式)
- makefile环境变量
- makefile环境变量
- Makefile的工作原理与详解
- makefile详解(03) 如何工作
- makefile详解 多行变量 环境变量 目标变量 模式变量
- GNU-makefle (二) Makefile 文件名,include,make工作方式
- 嵌套makefile(makefile变量,环境变量)
- makefile 使用环境变量
- FTP的2种工作方式详解
- Tortoisehg hg命令行工作方式详解
- makefile详解 清空目标文件的规则 七
- Java垃圾回收机制
- makefile详解 包含内容 包含其他文件 八
- wince注册表文件platform.reg详解
- 编译文本配置文件从而得到可直接在游戏中使用的数据结构
- makefile详解 环境变量 工作方式 九
- iPhone应用开发之AVAudioPlayer音频播放
- makefile详解 书写规则 十
- unity3d 如何调用ios的api
- 矩阵专题小结
- makefile详解 文件搜寻 十一
- jquery中使用each遍历checkbox
- makefile详解 伪目标 十二
- jquery中用match方法遍历