automake使用教程一

在这里插入图片描述

1.Ubuntu下安装automake

sudo apt-get install automake

将会安装automake相关的工具

2.编辑源文件

vim hello.c

在这里插入图片描述

3.执行autoscan

Autoscan工具用来扫描源代码以搜寻一般的可移植性问题,比如检查编译器、库和头文件等,并创建configure.scan文件,它会在给定目录及其子目录树中检查源文件,若没有给出目录,就在当前目录及其子目录树中进行检查。	

在这里插入图片描述
简要介绍configure.scan文件:

  1. AC_PREREQ:声明本文件要求的autoconf版本,本例使用的版本为2.69
  2. AC_INIT:用来定义软件的名称和版本等信息,”FULL-PACKAGE-NAME”为软件包名称,”VERSION”为软件版本号,”BUG-REPORT-ADDRESS”为BUG报告地址(一般为软件作者邮件地址)
  3. AC_CONFIG_SRCDIR:用来侦测所指定的源码文件是否存在,来确定源码目录的有效性。此处为当前目录下的hello.c
  4. AC_CONFIG_HEADER:用于生成config.h文件,以便autoheader使用
  5. AC_PROG_CC:用来指定编译器,如果不指定,选用默认gcc
  6. AC_OUTPUT:用来设定 configure 所要产生的文件,如果是makefile,configure会把它检查出来的结果带入makefile.in文件产生合适的makefile。使用Automake时,还需要一些其他的参数,这些额外的宏用aclocal工具产生

4.重命名configure.ac

复制一份configure.scan,命名为configure.ac,修改configure.ac文件内容:
在这里插入图片描述

5.执行aclocal

aclocal根据configure.ac生成aclocal.m4

在这里插入图片描述

6.执行autoconf

将configure.ac中的宏展开,生成configure脚本。这个过程可能要用到aclocal.m4中定义的宏

在这里插入图片描述

7.执行autoheader

autoheader根据configure.ac 生成 config.h.in。

在这里插入图片描述

8.创建Makefile.am

automake工具会根据configure.in中的参量把Makefile.am转换成Makefile.in文件。所以在使用automake之前我们需要自己创建Makefile.am文件

在这里插入图片描述

  1. AUTOMAKE_OPTIONS:为设置Automake的选项。由于GNU对自己发布的软件有严格的规范,比如必须附带许可证声明文件COPYING等,否则Automake执行时会报错。Automake提供了3种软件等级:foreign、gnu和gnits,供用户选择,默认等级为gnu。本例需使用foreign等级,它只检测必须的文件。
  2. bin_PROGRAMS:定义要产生的执行文件名。如果要产生多个执行文件,每个文件名用空格隔开
  3. hello_SOURCES:定义”hello”这个执行程序所需要的原始文件。如果”hello”这个程序是由多个原始文件所产生的,则必须把它所用到的所有原始文件都列出来,并用空格隔开。例如:若目标体”hello”需要”hello.c”、”hello.h”两个依赖文件,则定义hello_SOURCES=hello.c hello.h。

9.执行automake

automake生成”Makefile.in”文件,使用选项”–add-missing”可以让automake自动添加一些必需的脚本文件

在这里插入图片描述

10.执行./configure

生成makefile文件

在这里插入图片描述
测试:
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值