- 2
- 0
- 约7.76千字
- 约 40页
- 2017-07-16 发布于四川
- 举报
静态链接库和动态链接库的创建和调用 6.3 程序维护工具make6.3.1 make的工作机制 GNU的make的工作过程如下: ① 依次读入各makefile文件; ② 初始化文件中的变量; ③ 推导隐式规则,并分析所有规则; ④ 为所有的目标文件创建依赖关系链; ⑤ 根据依赖关系和时间数据,确定哪些目标文件要重新生成; ⑥ 执行相应的生成命令。 1.makefile文件 make被调用后会依次查找名为GNUmakefile,makefile和Makefile的描述文件 一个示例 : prog: x.o y.o z.o assmb.o gcc x.o y.o z.o assmb.o -L/home/mqc/lib -lm -o prog x.o:x.c defs.h gcc -c x.c y.o: y.c defs.h gcc -c y.c z.o:z.c gcc -c z.c assmb.o:assmb.s as -o assmb.o assmb.s clean: rm prog *.o Makefile规则有以下通用形式: 目标文件:[相依文件…] tab命令1[#注释] … tab命令n[#注释] 在格式上应注意: 依赖行从一行的开头开始书写 各命令行单独占一行,每个命令行的第一个字符必须是制表符tab,而不能使用8个空格 #号后的内容为注释 在依赖行上,目标文件和相依文件之间要用一个或两个冒号分开 2.依赖关系图 使用make的一个核心问题是确定好各文件之间的依赖关系。一般来说,生成一个目标文件可能有多个不同的途径,根据这些途径能够指定不同的依赖关系。 make是依据“关系图深度优先搜索”的算法来核查目标文件及相依文件的修改时间,深度相等时,可由左到右依次进行。 适当地引入中间结果,合理地构造依赖关系图,可以省去一部分编译工作量。但并非层次越多越好,要考虑目标文件的生成过程及其所起的作用。 6.3.2 使用变量 1.变量定义和引用 make的变量(又称做宏定义)一般均由大写字母和数字组成。 定义变量的一般格式是: 变量名=字符串 例如,下面都是合法的变量定义: OBJECT=x.o y.o z.o LIBES=-lm 引用make变量的方式与引用shell变量类似,即:把变量用圆括号括起来,并在前面加上“$”符号。例如: $(OBJECT) $(LIBES) 2.自动变量 除了用户定义的变量外,make也可以使用环境变量、自动变量和预定义变量。 make中定义了一些它们的值会因环境的不同而发生改变的变量,被称为自动变量。 例如: $@ 表示规则中的目标文件集合 $? 所有比目标文件还新的那些相依文件的集合,以空格分开 $ 规则中的第一个相依文件名 $^ 规则中所有相依文件的集合,以空格分开 $% 仅当目标文件是一个静态库成员时,表示规则中的目标成员 名,而此时$@表示相应库文件的名称 $* 如果目标文件的后缀是make所识别的,则$*就是去掉后缀的目标文件名,但该引用只有用在隐含规则中才有意义 3.预定义变量 归档库: AR ARFLAGS 汇编命令: AS ASFLAGS C编译命令: CC CPP CFLAGS CPPFLAGS C++编译命令: CXX CXXFLAGS 6.3.3 隐式规则 在makefile文件中显式地指定了一些规则,称为显式规则。 隐式规则就是一种惯例,即预先约定好了,不需要在makefile文件中写出来的规则。 几个常用的隐式规则: ① 编译C语言程序的隐式规则 ② 编译C++程序的隐式规则 ③ 汇编和汇编预处理的隐式规则 6.3.4 make命令常用选项 make命令有丰富的命令行选项。 例如: -C dir 把目录改到dir -d 输出所有的调试信息 -e 指明环境变量优先于makefile文件中的变量 -f file 使用file文件作为makefile文件 -I 忽略在
您可能关注的文档
最近下载
- 2025年黑龙江省综合评标评审专家库专家考试历年参考题库含答案详解(5.docx VIP
- T_CSTM 00121-2020_硫酸生产装置用合金管槽式分酸器.pdf VIP
- 橡胶密封件培训课件.pptx VIP
- 2025年黑龙江省综合评标评审专家库专家考试历年参考题库含答案详解.docx VIP
- 2025年黑龙江省综合评标评审专家库专家考试历年参考题库含答案详解.docx VIP
- 第七章 呼吸系统第七章 呼吸系统第七章 呼吸系统第七章 呼吸系统.ppt VIP
- 冬季防冻防凝安全管理专项培训PPT.pptx VIP
- 2023年兰州理工大学软件工程专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 养殖设备采购标准及安装与验收技术规范.pdf VIP
- 橡胶密封件培训课件.pptx VIP
原创力文档

文档评论(0)