永远的Autotools——GNUBuildSystem简介-LUGUSTC.PPT

永远的Autotools——GNUBuildSystem简介-LUGUSTC.PPT

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
永远的Autotools——GNUBuildSystem简介-LUGUSTC

永远的 Autotools ——GNU Build System 简介(一);一点声明;引子:开发一个C语言的项目;引子:开发一个C语言的项目;引子:开发一个C语言的项目;科普:make 工具;引子:开发一个C语言的项目;引子:开发一个C语言的项目;引子:开发一个C语言的项目;引子:开发一个C语言的项目;Autotools 是什么?;Autotools 是什么?;科普:GNU 工具链;Autotools 包括的程序;Autotools 功能举例;最简易使用方法:前提;最简易使用方法:配置文件;理解两类配置文件;理解两类配置文件;理解两类配置文件;理解两类配置文件;一般处理流程;一般处理流程;一般处理流程;最简单操作流程;编写两类配置文件:configure.ac;顾名思义,该文件是一堆宏的集合,需要经过宏处理器(GNU M4)处理展开 展开后是 shell 脚本 M4 很古老,语法很奇怪,间接导致 configure.ac 语法有些难理解 宏的性质导致我们可以在 configure.ac 中直接编写 shell 脚本进行自定义处理 ;好消息是,你不需要从头开始手动写;我们有autoscan 这个工具! 在项目根目录运行 autoscan,自动生成 configure.scan,这通常是使用 Autotools 万里长征的第一步 编辑 configure.scan 得到能用的 configure.ac 请看示例 ;注意事项: AM_INIT_AUTOMAKE([]) 宏内使用 foreign 参数可避免 GNU 的严格文件要求 需要在 AC_CONFIG_FILES([]) 宏内填入所有 Makefile.am 所在位置 最后调用 AC_OUTPUT 宏输出结果 有各类宏可以作为参数,请见参考手册 ;说明: 顾名思义,它可以用来生成 Makefile 所以可以在里面使用 Makefile 语法 基础的 Makefile.am 语法类似一系列有特定名称的变量的赋值语句;请看示例 超前缀_前缀_名称_后缀 = 值 值 值 值 ↑大概类似这样。注意如果值太多,换行需要加反斜杠转义! ;编写说明: 传统做法是在所有有源文件的文件夹内放置一个 Makefile.am 进行递归处理;你可以自行选择是否采纳 如果有子目录,请在 Makefile.am 第一行使用 SUBDIRS = aaa bbb src 进行递归处理 可以使用 AM_CPPFLAGS = -I.. -DAABBCC 向编译器传递参数;请一定添加 -I$(top_srcdir) 可以使用 LDADD = -lrt -lz 添加链接库信息(相当于 -L 参数,区别在于可以配合libtool使用;详情请见 libtool 的使用) ;编写说明(二): 使用 XXXX_PROGRAMS 指定最终需要生成的可执行文件名;使用 可执行文件名_SOURCES 可进一步指定生成可执行文件所需的源文件名。例: (当前目录有 editor.c common.c test_c.c editor.h) (当前目录下有 scripts 子目录) AM_CFLAGS = -I.. -I$(top_srcdir) -I. LDADD = $(top_srcdir)/lib/libpro.la bin_PROGRAMS = editor test_c editor_SOURCES = editor.c common.c editor_LDADD = -lz test_c_DEPENDENCIES = test.stamp test.stamp: @echo #built on $$(date) $(srcdir)/scripts/test.sh EXTRA_DISTS = README noinst_HEADERS = editor.h ;编写说明(三): 使用变量名的“递归”进行处理步骤的说明 变量名中如果有特殊字符,一律用下划线代替 ;实战:从零开始;有条件有时间的话,请一定看一遍官方使用手册再来使用;能够少走很多弯路。(见演示文稿后的参考文献) 去找找其它使用 Autotools 的中小型项目的配置文件作参考 遇到问题请使用英文在 Google 搜索 autoconf 的宏与 automake 的前后缀参数很多,功能强大;有需要请查阅资料 ;最简单操作流程;最简单操作流程;下期预告;扩展阅读与参考文献;扩展阅读与参考文献;Q A;谢 谢 !

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档