嵌入式lin是ux系统项目工程管理.pptVIP

  • 6
  • 0
  • 约8.49千字
  • 约 51页
  • 2018-12-28 发布于福建
  • 举报
嵌入式lin是ux系统项目工程管理

* * * * 自动变量示例 内置规则 用GCC编译一个程序的步骤都是固定的,GNU make 会内置有一些规则。来 简化这一些固定步骤 1、隐式规则 (1)隐式规则告诉make怎样使用传统技术完成任务,不必在Makefile中指定编译的具体细节,而只需要把目标文件列出来即可 (2)make自动使用隐式规则来确定如何生成目标文件 (3)最重要的隐式规则:所有的“file.o”文件都可以自动由file.c文件使用命令$(CC) $(CFLAGS) -c file.c -o file.o生成. 隐式规则示例 内置规则 2、模式规则 (1)有时候多个文件具有相同的处理规则,这时候就要自定义模式规则,即相同模式的目标共用的规则 (2)所有的.o文件依赖于对应的.c文件的模式规则 %.o: %.c $(CC) $(CFLAGS) -c $ -o $@ (3)模式规则会覆盖隐式规则,一般建议Makefile都用自己隐含规则来代替 缺省规则,这样比较容易读懂,并且容易调整 模式规则示例 课程安排 Linux项目工程管理的概念 项目工程管理文件Makefile Autotool自动生成Makefile Linux开源项目嵌入式移植 Autotools简介 较大项目Makefile都是相当复杂,手工编写有相当难度 而且Makefile而且常常会受到自己的开发环境的限制,只要环境参数不同或者路径更改,可能 Makefile就得跟着修改 那么有没有为复杂工程自动生成Makefile的方法? Autotools:辅助生成Makefile的GNU工具应运而生! 绝大部分开源项目都是用Autotools生成Makefile,因此Autotools是嵌 入式Linux开发必须掌握的工具集。 Autotools必要工具 autoconf: 生成可以自动地配置软件源码包,用以适应多种UNIX类系统的shell脚本工具,最后生成可执行程序configure automake:从Makefile.am文件自动生成Makefile.in的工具,configure程序使用Makefile.in生成Makefile libtool:方便生成各种程序库的工具 Automake流程图 1 3 2 4 5 6 7 Autotools项目配置过程 1、准备automake必需的配置文件Makefile.am (1)为顶层目录创建Makefile.am文件 AUTOMAKE_OPTIONS=foreign #指示automake代码级别,默认级别为gnu,GNU规定自由软件发布必 NEWS/README/AUTHORS/ChangeLog说明文件,这里将级别降为foreign,从而 避免准备这些文件. SUBDIRS=src inc #指定需要处理的子目录,如果要处理多个子目录,以空格隔开.这里只 有src inc Autotools项目配置过程 ROOTDIR=$(shell /bin/pwd) #利用pwd取得当前路径 export INCLUDES=-I$(ROOTDIR)/inc #指定头文件所在路径,并导出供子目录Makefile.am使 bin_PROGRAMS=target #指定要产生的执行文件名 target_SOURCES=main.c 指定产生执行文件需要的源文件,如果有多个,以空格隔开 target_LDADD=$(ROOTDIR)/src/libname.a(利用src创建静态库) 或者 LIBS+=... 增加链接库 Autotools项目配置过程 (2)、在src子目录创建Makefile.am文件 noinst_LIBRARIES=libname.a (自己定义的静态库名) #在src子目录生成静态库libname.a,以便顶层目录主文件链接使用 libname_a_SOURCES(与库名对应)=src1.c src2.c(对应.c文件名) #产生静态库libname.a需要的源文件,以空格隔开 Autotools项目配置过程 (3)、在inc目录增Makefile.am EXTRA_DIST=inc1.h inc2.h (对应.h文件名) #EXTRA_DIST表示用来定义要额外打包的文件名称 Autotools项目配置过程 3、在给定目录及其子目录中搜索源文件,生成模板文件 ./autoscan 4、准备autoconf必需的配置文件configure.in 将configure.scan更名为configure.in,并对脚本进行如下修改 (1)修改AC_INIT宏,指定软件包名称/版本/bug报告地址 (

文档评论(0)

1亿VIP精品文档

相关文档