- 8
- 0
- 约1.22万字
- 约 61页
- 2017-01-19 发布于浙江
- 举报
8_Makefile的使用和编写_计算机软件及应用_IT计算机_专业资料.ppt
Makefile的使用和编写 Build Makefile 课程目标 Makefile的概念 Make的调用格式 Makefile的基本格式 Makefile的扩展话题 常见项目的Makefile格式 直接编译 遍历子目录 autoconf生成形 Makefile 产生的背景 一个软件项目通常包含多个源码文件.每个源代码的编译和可执行文件的链接都要书写大量的命令. 如Linux 下要大量调用gcc 来处理 如果用IDE开发环境,这编译和链接一般由IDE自动完成.但绝大部分Linux和开源项目并不使用IDE,而是使用gcc 之类命令行工具来编译 Linux 内核. 在一项目里, 代码通常都引用关系.因此需要指定谁先编译,谁后编译.甚至是更复杂的功能操作 Makefile 就为解决上述一系统问题而创造的.可以把Makefile 理解成是一种由make 程序进行解释的一种特殊脚本. Linux 几乎所有项目都是通过Makefile 方式编译的,如MySQL,Apache和操作系统本身,因此Linux 下开发必须掌握Makefile的编写和使用 Makefile与Shell脚本的异同 相同点: 都是文本文件格式的脚本. 都可以执行Shell命令 都可以定义变量,和条件控制语句.(使用格式上有差别) 不同点: 解释器不同,Shell脚本是由对应Shell程序解释.而Makefile是由make程序解释 格式不一样,Shell脚本以命令行为基本单位,而Makefile以规则为基本单位 Shell脚本只要有执行权限即可直接执行,Makefile必须要用make来显式调用才行,本身不需执行权限 Makefile相对Shell脚本的优点 在开发领域,Makefile还是有相当优势 Makefile具有自动推导,判断源码依赖关系的功能 Makefile有可以使用隐含规则来简化makefile的编写 但这样会带来makefile可阅读性下降 Make的调用 最常用的make调用形式.就是直接执行make 它会自动查找当前目录下的名称为Makefile或makefile的文件,并自动从名称为all的target开始执行 象其它GNU工具一样,make有一些命令参数,以便应用在一些特殊场所 如果makefile脚本名称不是缺省名称,则需要用-f参数来通知make make –f hello.mk 表示执行名称叫hello.mk makefile脚本 如果需要make不去查找当前目录,而是查找另外一个目录下的makefile,则使用-C 参数 make -C /home/hxy 表示去找查找 /home/hxy下的makefile 指编译特定部分 一个项目可能不同版本或不同部分,在makefile中以target表示 make可以通用在命令行直接写target名称,用于一个或多个target进行编译, make install make clean make target1 target2 规则(rule)概念 一个Makefile 可以看作是一系列规则的组合,一个规则也能称为一个目标(target) 规则的格式 目标名称是需要创建结果一个称呼.可以取任意标识名.一般与创建文件同名 依赖对象,表示创建这个目标之前,必须预先创建的其它目标,这里的对象可以是另一个规则的名称,也可是基本的文件名称 命令列表表示为了创建这一个目标,需要执行哪些Shell命令.可以是一行或多行Shell命令.每一行命令行的行首必须是一个跳格字符(即tab), 注意行首空格是无效,否则执行makefile报错 如果命令行过长,可用\分行,分行后的新行,无需使用tab打头 整个规则的可做如下解读.”为了创建这个目标,必须先创建依赖对象(或是依赖的对象必须存在),然后再调用命令行列表进行创建” 规则(rule)概念 在Makefile里,把源代码编译成目标代码一般是一个规则 把所有中间文件链接在一起也是一个规则 伪目标 一般的目标最终结果都是生成一个文件,但有一些目标可以不生成结果文件.只是为了调用命令或依赖对象.这称为伪目标(Phony target) make 内置一些常用的伪目标. all 缺省的目标入口,如果执行make命令行没有指定目标名称,all目标则会自动被调用. clean 清除项目生成的中间文件和最终成文件,如何清除需要开发者自行编写. install 项目如何安装, .具体动作要开发者自行编写 uninstall 项目如何卸载.具体动作要开发者自行编写 为了让make程序不至于产生误解,开发者可以用.PHONY关键字来声明伪目标,但这不是必须做的 .PHONY clean,install,all #表示三个都是伪目标 规则(rule)概
您可能关注的文档
- 2012抗菌药物临床合理应用考试试题及答案(公共课程考试.doc
- 2017白色简约系列模板_图文.ppt
- 2013-6颈椎骨折中医护理查房.ppt
- 2017蓝色风格时尚模板_图文.ppt
- 2017驾考C1科目二教学技巧及评判新标准.ppt
- 20137母婴阻断知识培训_图文.ppt
- 3 access查询_计算机软件及应用_IT计算机_专业资料.ppt
- 3 MOS认证考试简介20168_图文.ppt
- 5-1 信息检索在日常学习中的应用_图文.ppt
- 5A级写字楼标准详解及案例_图文.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 交流转辙机道岔动作电流故障曲线分析信号集中监测课件.pptx VIP
- 2025届东北三省三校高三下学期第一次联合模拟考试政治试题(原卷版+解析版).docx VIP
- 养老服务质量检测90项.pdf VIP
- 光谱分析图谱与标志.docx
- 2025新课标中考英语词汇.pdf VIP
- T_CNPHARS 0001-2025 群体药动学药效学分析标准操作规范.pdf VIP
- (2026年)血浆置换及血浆分离吸附护理要点PPT课件.pptx VIP
- 农村狗狗交配的全过程,让你看了有点不可置信.pdf VIP
- 医院培训课件:《死亡医学证明(推断)书》规范填写及死因链基础知识.pptx VIP
- 健康体检表样表最新文档.docx VIP
原创力文档

文档评论(0)