网站大量收购独家精品文档,联系QQ:2885784924

嵌入式Linux系统项目工程管理.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一个软件的构造过程中,很多步骤是固定的,因此很多时候可以简化处理,01这是Makefile最大优势02在复杂项目里,为了简化Makefile的书写,往往会采用扩展写法,这些方03法包括变量内置规则04Makefile的简化VAR=value递归展开方式定义的变量是在变量引用时进行替换的。这种方式在处理形如CFLAGS=$(CFLAGS)-g的变量时可能导致无穷循环,最终导致溢出。递归展开方式定义VAR:=value简单扩展方式变量的值在定义展开,并且只展开一次消除了上面无穷循环的问题。简单扩展方式定义自定义变量预定义变量1、Make工程管理器维护了一些预定义变量,可以在Makefile中直接使用(1)CCC编译器的名称,默认值为cc。(2)CFLAGSC编译器的选项,无默认值。(3)LDFLAGSC链接器的选项,无默认值。如:使用数学函数库LDFLAGS=-lm(4)RM文件删除程序名称,默认值为rm–f(5)AR归档维护程序的名称,默认值为ar。(6)ARFLAGS归档维护程序的选项,无默认值。(7)CXXC++编译器的名称,默认值为g++。(8)CXXFLAGSC++编译器的选项。2、在Makefile内可以使用自定义变量来覆盖预定义变量如:ARFLAGS=crvsCC=gcc自定义与预定义变量示例对每一条Makefile规则,Make维护了一些自动变量。1$第一个依赖文件的名称。2$@目标的完整名称。3$^所有的依赖文件,以空格分开,不包含重复的依赖文件。4$*不包含扩展名的目标文件名称。5$+所有的依赖文件,以空格分开,并以出现的先后为序,可能包含6重复的依赖文件。7$?所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标8的创建日期晚。9$%如果目标是归档成员,则该变量表示目标的归档成员名称10自动变量自动变量示例内置规则用GCC编译一个程序的步骤都是固定的,GNUmake会内置有一些规则。来简化这一些固定步骤1、隐式规则(1)隐式规则告诉make怎样使用传统技术完成任务,不必在Makefile中指定编译的具体细节,而只需要把目标文件列出来即可(2)make自动使用隐式规则来确定如何生成目标文件(3)最重要的隐式规则:所有的“file.o”文件都可以自动由file.c文件使用命令$(CC)$(CFLAGS)-cfile.c-ofile.o生成.隐式规则示例有时候多个文件具有相同的处理规则,这时候就要自定义模式规则,即相同模式的目标共用的规则所有的.o文件依赖于对应的.c文件的模式规则%.o:%.c$(CC)$(CFLAGS)-c$-o$@模式规则会覆盖隐式规则,一般建议Makefile都用自己隐含规则来代替缺省规则,这样比较容易读懂,并且容易调整模式规则内置规则模式规则示例课程安排Linux项目工程管理的概念项目工程管理文件MakefileAutotool自动生成MakefileLinux开源项目嵌入式移植而且Makefile而且常常会受到自己的开发环境的限制,只要环境参数不同或者路径更改,可能Makefile就得跟着修改较大项目Makefile都是相当复杂,手工编写有相当难度Autotools:辅助生成Makefile的GNU工具应运而生!绝大部分开源项目都是用Autotools生成Makefile,因此Autotools是嵌入式Linux开发必须掌握的工具集。那么有没有为复杂工程自动生成Makefile的方法?Autotools简介autoconf:生成可以自动地配置软件源码包,用以适应多种UNIX类系统的shell脚本工具,最后生成可执行程序configureautomake:从Makefile.am文件自动生成Makefile.in的工具,configure程序使用Makefile.in生成Makefilelibtool:方便生成各种程序库的工具Autotools必要工具Automake流程图Autotools项目配置过程1、准备automake必需的配置文件Makefile.am(1)为顶层目录创建Makefile.am文件AUTOMAKE_OPTIONS=foreign#指示automake代码级别,默认级别为gnu,GNU规定自由软件发布必NEWS/README/AUTHORS/C

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档