autotools的使用

首先检查系统有没有装有autotools

如果没有的话,直接apt-get install autoconf

下面的文章转自http://blog.sina.com.cn/s/blog_4b5210840100c0ta.html

autotools主要就是利用各个工具的脚本文件以生成最后的Makefile。流程主要如下:

1,使用autoscan,它会在给定目录及其子目录树中检查源文件,若没有给出目录,就在当前目录 及其子目录树中进行检查。它将会收索源文件以需找一般的移植性问题并创建一个文件“configure.scan”,该文件就是接下来autoconf要 用到的configure.in的原型

2,改写configure.scan文件,改好后并将其重新命名为configure.in,改好后如下图所示:


添加了AM_INIT_AUTOMAKE(hello,1.0)

修改了AC_INIT()为AC_INIT(hello,1.0)

3,使用aclocal。生成一个aclocal.m4的文件,该文件主要处理本地的宏定义

4, 使用autoconf.生成configure可执行文件

5,使用autoheader,负责生成config.h.in

#6,修改configure.in文件,将AC_CONFIG_HEADER(config.in)改为AM_CONFIG_HEADER(config.in),保存退出(这一步好像可以不用)

7,编写Makefile.am文件,用户需要自己创建相应的文件,之后,使用automake工具转换成Makefile.in

例Makefile.am如下:

AUTOMAKE_OPTIONS=foreign

bin_PROGRAMS=hello

hello_SOURCES=hello.c

其中的AUTOMAKE_OPTIONS为设置automake的选项。由于GNU对自己发布的软件 有严格的规范,比如必须附带许可证声明文件COPYING等,否则automake执行时会报错。automake提供了3种等 级:foreign,gnu,gnits,让用户选择采用,默认等级为gnu,foreign等级它只检测必须的文件

bin_PROGRAMS定义要产生的执行文件名,如果要产生多个执行文件,每个文件名用空格隔开

bin_SOURCES定义hello这个执行程序所需要的原始程序,如果hello这个程序是由多 个文件所产生的,则必须把它所用到的所有原始文件都列出来,并用空格隔开,例如:hello需要hello.c,sunq.c,hello.h三个依赖文 件,则定义hello_SOURCES=hello.c sunq.c hello.h。需要注意的是,如果要定义多个执行文件爱你,则对每个执行程序都要定义相应的file_SOURCES

接下来,可以使用automake对其生成的configure.in文件,在这里使用选项--add-missing可以让automake自动添加一些必需的脚本文件,输入automake --add-missing

8,运行configure。输入./configure

把Makefile.in文件变成了Makefile



9,make

10,可以选择输入make install

11,make clean

12,make dist 此时,make将程序和相关文档打包为一个压缩文档以供发布

例:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值