- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内容提要 5.1 GNU C 编译器 5.2 项目管理工具:GNU make 5.3 创建和使用函数库 5.4 GNU C 函数库:glibc 5.1.1目标代码生成 5.1.2 GCC概述 GCC概述 GCC(GNU Compiler Collection)是GNU下编译器及其相关工具的集合。GCC 原名为 GNU C 语言编译器,目前在功能上得到了不断扩展: (1) 支持多种高级语言 (C,C++,JAVA,FORTRAN,PASCAL) (2) 支持多种硬件处理器 (x86,ARM,PowerPC) (3) 支持多种操作系统平台(LINUX,WINDOWS,SOLARIS) 5.1.3 gcc 编译器 是C语言预处理器、编译器、汇编器、连接器的套装工具。根据输入文件和参数决定如何调用工具。 gcc命令 语法 gcc [选项] 目标文件 源文件 功能 将C语言编译为目标代码或可执行文件。 补充: which gcc //查看路径 gcc –v //查看版本 gcc 命令选项 gcc命令 例子: gcc –S exam5-1.c gcc –Wall exam5-1.c –o exam5-1.o gcc –o exam5-1 exam5-1.o gcc exam5-1 exam5-1.c 提示:注意 –c 和 –o的用法 5.2 项目管理工具:GNU make 5.2.1 项目管理概述 1、手工管理 2、脚本管理 参见书上脚本5-1 缺点: (1)每次都要编译所有的文件,即使该文件没修改。 (2)文件多时,费时长 5.2.2基于make工具管理项目 (1) 用户只需将具体的操作步骤按一定的语法规则以命令的方式写入文本文件,一般命名为Makefile或者makefile (2)此后,用户只需在命令提示符下输入make命令,make工具会根据Makefile文件中的定义自动执行一系列编译和链接工作. (3)当某个文件被修改,make工具只执行依赖于该文件的一系列规则。 Makefile文件的语法结构 Makefile文件由一系列规则构成,每条规则的语法结构为: 目标1 目标2...目标n : 依赖文件列表 tab命令1 tab命令2 ...... tab命令n Makefile文件的语法结构 (1)依赖关系用来定义目标文件所依赖的文件,只有所依赖的文件被更新,make才修改相应的目标文件。 (2)命令是产生目标文件所要执行的命令。 涵义: (1)依赖文件列表中的文件可以是一个文件,也可以是另一规则的目标。 (2)若目标和依赖都是文件,根据文件时间判断是否执行命令。 (3)若依赖对象是另一条规则的目标,则递归运行。 (4)若目标不是一个存在的文件,则一定执行对应的命令。 2 make工具用法 语法: make [选项][目标] 涵义: 创建指定的目标,如果没有指定目标,则创建第一个目标 具体例子: make appexam make 实例分析 # script5-2_makefile appexam:main.o app.o mod.o lib.o gcc -o appexam main.o app.o mod.o lib.o main.o:main.c app.h gcc -c main.c app.o:app.c app.h gcc -c app.c mod.o:mod.c gcc -c mod.c lib.o:lib.c lib.h gcc -c lib.c clean: rm -f *.o 实例分析 5.2.3 Makefile中的变量 1. 自定义变量 语法 变量名= 字符串 功能 将字符串赋给变量名,在makefile中变量无数据类型。 引用: $(变量名) 参见脚本5-3 2. 环境变量 Make在运行过程中,将环境变量转化为同名同值的make变量,用户也可在Makefile中对这些变量进行重新定义。 Makefile中的变量 Makefile中的变量 实例分析 # script5-5_makefile OBJS=main.o app.o mod.o lib.o appexam:$(OBJS) $(CC) -o $@ $^ main.o:main.c app.h $(CC) -c -o $@ $ app.o:app.c app.h $(CC) -c -o $@ $ mod.o:mod.c $(CC) -c -o $@ $ lib.o:lib.c lib.h $(CC) -c -o $@ $ clean: rm -f *.o 5.2.
您可能关注的文档
最近下载
- 城乡环卫保洁投标方案.doc
- 江苏省英语初一上学期模拟试卷及答案解析.docx VIP
- 《仪器分析》练习题及参考答案(按章节).pdf
- 2024年机电安装工程行业分析报告及未来五到十年行业发展趋势报告.docx
- 广汽集团公司2010年度财报.pdf
- HEIDENHAIN海德汉TNC640 (34059x-10) Cycle Programming用户手册.pdf
- 2022年长春市朝阳区工会系统招聘考试试题及答案解析.docx VIP
- 《大数据架构与设计》实践报告-网易云音乐大数据系统构建.docx VIP
- 仓储物流园及配套基础设施项目可行性研究报告-立项备案.doc VIP
- 2022年1月吉林省长春市工会系统招聘考试《工会基础知识》试卷及答案.pdf VIP
文档评论(0)