The GNU build system体验教程:Hello world example with Autoconf and Automake

一、安装GNU构建系统

在安装GNU构建系统之前先介绍四个软件包:
Autoconf:生成configure配置脚本;
Automake:生成makefile模板;
Libtool:用可移植的方式编译无关位置的代码并且构建共享库;
Autotoolset:生成各种模板文件帮助你开发出各种符合GNU代码风格的可移植的源码。

输入以下命令以检查是否安装了最新的版本:

$ autoconf --version
$ automake --version
$ libtool --version

本教程使用了Autoconf 2.69,Automake 1.15和Libtool 2.4.6。
如果没有以上软件包,请自行安装好。

二、创建需要的文件

在一个空目录下创建以下三个文件(后面会给出下载链接):
hello.c

#include <stdio.h>

int main(void)
{
    printf("Howdy world!\n");
    return 0;
}

要编译的C语言源文件。

Makefile.am

bin_PROGRAMS = hello
hello_SOURCES = hello.c

文件的第一行指定了程序的名字,第二行指定了源代码的路径以及文件名。

configure.ac

AC_INIT(hello,0.1)
AC_CONFIG_SRCDIR(hello.c)
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_PROG_INSTALL
AC_OUTPUT(Makefile)

AC_INIT宏初始化了配置脚本,第一个参数指定了软件包的名字,第二个参数指定了软件包的版本号;
AC_CONFIG_SRCDIR宏指定了源文件的路径以及文件名;
AM_INIT_AUTOMAKE宏声明由Automake自动生成Makefile.in文件(现在不用理解);
AC_PROG_CC宏检查系统可用的编译器,如果源文件为C++请使用AC_PROG_CXX宏;
AC_PROG_INSTALL宏检查系统是否安装了BSD兼容安装工具(BSD compatible install utility);
AC_OUTPUT宏告诉安装脚本从Makefile.in文件生成Makefile文件。

三、输入命令以生成软件包

按顺序输入以下命令:

$ aclocal
$ autoconf
$ touch README AUTHORS NEWS ChangeLog
$ automake -a
$ ./configure
$ make
$ ./hello

aclocal命令安装了一个叫做aclocal.m4的文件;
autoconf命令结合aclocal.m4文件和configure.ac文件生成configure脚本;
touch命令在调用automake命令之前创建了包括READEME文件在内的几个Automake需要的文件;
automake命令检查是否缺少了必要的文件并且生成Makefile.in文件;
./configure命令分析系统是否安装了软件所依赖的软件和库;
make命令编译软件;
./hello命令执行程序。

然后可以输入# make install命令安装软件,输入# make uninstall命令卸载软件。
最后输入make distcheck生成hello-0.1.tar.gz发布软件。

四、安装、使用、卸载软件包

按顺序输入以下命令:

$ gunzip hello-0.1.tar.gz
$ tar xf hello-0.1.tar
$ cd hello-0.1
$ ./configure
$ make
# make install
$ ./hello
# make uninstall

本软件包可以不用# make install# make uninstall
hello-0.1.tar.gz下载链接:
Hello world example with Autoconf and Automake.

五、进一步学习

提供以下链接以供进一步学习Autotools与GNU构建系统
GNU Automake
Autotools Tutorial for Beginners
The GNU configure and build system
Learning the GNU development tools

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值