- 浏览: 146931 次
- 性别:
- 来自: 佛山
文章分类
最新评论
-
C393416691:
JNA—JNI终结者,java调用dll、ocx、so最简单的方法 -
C393416691:
JNA—JNI终结者,java调用dll、ocx、so最简单的方法 -
C393416691:
[flash=200,200][url][img][list] ...
JNA—JNI终结者,java调用dll、ocx、so最简单的方法 -
zhdycn:
感谢 LZ 的分享 都把核心 接口 都介绍了一下 一看你 ...
Spring3 MVC -
naily:
naily 写道很非常详细,对于了解spring mvc很有帮 ...
Spring3 MVC
Autoconf/Automake工具用于自动创建功能完善的makefile文件。当前大多数软件包都是用这一工具生成makefile文件的。本节首先介绍Autoconf/Automake工具的功能以及makefile创建过程中所涉及的文件和命令。最后以一个实例介绍如何使用Autoconf/Automake工具自动创建makefile文件。
Autoconf/Automake工具组简介
Autoconf/Automake工具组主要包括autoconf、automake、perl语言环境和m4。其中FC4默认安装的autoconf和automake软件包信息如下:
[root@localhost hello]# rpm -qa |grep autoconf //查看是否安装autoconf |
默认安装的perl语言环境如下:
[root@localhost ~]# rpm -qa |grep perl // |
默认安装的m4软件包如下:
[root@localhost ~]# rpm -qa |grep m4 //查看是否安装m4工具 |
如果读者没有获得以上任何一个软件包的完全安装,请直接插入FC4安装盘,使用"system-config-packages"命令更新,在开发工具中选中以上选项即可。
以下命令用来查看本节所使用的Autoconf/Automake命令所在位置:
[root@localhost hello]# whereis aclocal //查看aclocal命令所在位置 |
使用Autoconf/Automake工具自动生成Makefile文件的流程图如图2-5所示。在此过程中使用的命令主要有aclocal、autoscan、autoconf、autoheader和automake。由图可知运行步骤如下:
(1)创建源代码文件,使用"autoscan"生成configure.scan文件,将其重命名为configure.ac,并做适当修改,然后使用"aclocal"命令生成aclocal.m4文件,使用"autoconf"命令由configure.ac和aclocal.m4文件生成configure文件。
(2)手工编辑Makefile.am文件,使用"automake"命令生成configure.in文件。
(3)手工编辑或由系统给定acconfig.h文件,使用"autoheader"命令生成config.h.in文件。
(4)使用"configure"命令由configure、configure.in和config.h.in文件生成Makefile文件。从而完成Makefile文件的创建过程。
下面以自动编译hello.c程序为例介绍如何使用这组工具生成makefile文件。
1.使用Vi编辑器编辑源程序
在Linux操作Shell提示符使用Vi编辑器下创建hello.c源程序。
[root@localhost ch0206]# mkdir hello //创建文件夹 |
2.使用Autoscan工具生成configure.ac文件
Autoscan工具用来扫描源代码以搜寻一般的可移植性问题,比如检查编译器、库和头文件等,并创建configure.scan文件,它会在给定目录及其子目录树中检查源文件,若没有给出目录,就在当前目录及其子目录树中进行检查。如下所示:
[root@localhost hello]# autoscan .///在当前文件夹中搜索 AC_PREREQ(2.59) //autoconf版本号 |
下面给出本文件的简要说明(所有以"#"号开始的行为注释):
(1)AC_PREREQ宏声明本文件要求的autoconf版本,本例使用的版本为2.59。
(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工具产生。
中间的注释可以分别添加用户测试程序、测试函数库和测试头文件等宏定义。
此文件只是下面要使用的configure.ac文件的原型,要使用此文件,还需要根据情况修改相关内容。
[root@localhost hello]# cp configure.scan configure.ac //复制文件 |
此文件的相关内容需要根据当前软件和系统环境进行配置,但是,AM_INIT_ AUTOMAKE宏需要自己添加,它是automake所必备的宏,同前面一样,PACKAGE是要产生的软件套件的名称,VERSION是版本编号。其他设置请参阅注释内容。
3.使用aclocal工具生成aclocal.m4
aclocal工具用于扫描configure.ac文件生成aclocal.m4。此工具根据已经安装的宏、用户定义宏和acinclude.m4文件中的宏将configure.ac文件需要的宏集中定义到文件aclocal.m4中。
[root@localhost hello]# aclocal //执行aclocal生成aclocal.m4文件 |
4.使用autoconf工具生成configure文件
将configure.ac中的宏展开,生成configure脚本。这个过程可能要用到aclocal.m4中定义的宏。
[root@localhost hello]# autoconf //执行autoconf生成configure文件 |
5.使用autoheader工具生成config.h.in文件
autoheader工具负责生成config.h.in文件。该工具会从"acconfig.h"文件中复制用户附加的符号定义。此步骤可以在第3或第4步之前完成。
[root@localhost hello]# find / -name acconfig.h //系统acconfig.h文件位置 |
6.创建Makefile.am文件
Automake工具会根据configure.in中的参量把Makefile.am转换成Makefile.in文件。在使用Automake工具前,读者需要手工创建脚本配置文件Makefile.am。本例中,作者创建的文件如下所示:
[root@localhost hello]# ls 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。
7.使用Automake生成Makefile.in文件
下面使用Automake生成"Makefile.in"文件,使用选项"--add-missing"可以让Automake自动添加一些必需的脚本文件。如下所示:
[root@localhost hello]# automake --add-missing |
8.配置
运行自动配置设置文件configure,把Makefile.in变成最终的Makefile。
[root@localhost hello]# ./configure //配置,生成Makefile文件 |
9.测试
运行make命令进行编译,下面的示例中Make的主要编译命令为"gcc -g -O2 -o hello hello.o",此句对应本节前面介绍的手工编辑的Makefile文件内容。
[root@localhost hello]# cd ../hello |
编译成功后,将在当前目录下生成并运行可执行程序hello。测试源代码是否正确:
[root@localhost hello_2]# ./hello |
此方法生成的makefile文件很全面。使用"make install"命令把目标文件安装在系统中。
[root@localhost hello]# make install //安装 |
使用"make uninstall"命令把目标文件从系统中卸载。
[root@localhost hello]# make uninstall //卸载命令 |
使用"make clean"命令清除编译时的obj文件。
[root@localhost hello]# make clean |
使用"make dist"命令将程序和相关的文档打包为一个压缩文档以供发布。
[root@localhost hello]# make dist |
发表评论
-
JNA—JNI终结者,java调用dll、ocx、so最简单的方法
2011-03-12 15:43 4828介绍给大家介绍一个最 ... -
Java Native Interface
2011-03-12 15:25 933JNI全名是Java Native Interface,通过J ... -
结构之法 算法之道 第一期博文集锦
2011-03-09 20:13 0转自:http://blog.csdn.net/v_JULY_ ... -
configure参数解释
2011-02-23 15:26 783inux环境下的软件安装, ... -
window 使用 Eclipse IDE for C/C++ Developers 搭建 C++ 开发环境
2011-02-19 14:54 31731、安装 JDK 1.6 ,配置其环境变量: ① ... -
在 Linux PPC 上使用 Eclipse CDT 开发 C\C++ 程序
2011-02-19 12:23 1823引言 Linux 是一个成熟的操作系统,Linux 上大多操 ... -
typedef定义函数指针的用法
2011-02-18 20:57 15671. typedef有点类似于#define宏,用来定义一个同 ...
相关推荐
Autoconf和Automake是Linux和Unix环境中常用的自动化构建系统,它们可以帮助开发者生成适应不同平台的Makefile,使得软件编译和构建过程更加便捷。这两款工具通常与Libtool等配合使用,形成一套完整的自动化构建工具...
在MinGW中,autoconf和automake是两个非常重要的自动化构建工具,它们帮助开发者创建可移植的、符合GNU标准的软件项目。 **autoconf** autoconf是一个自动配置脚本生成器,它能够生成一个名为`configure`的脚本,这...
本书主要介绍了如何有效使用Autoconf、Automake和Libtool,降低学习这些工具通常面临的困难。它深入探讨了这些工具之间的交互,以及如何使它们协同工作。对于没有GNU构建环境经验的开发者来说,这本书提供了一个全面...
关于autoconf,automake和libtool的教程,描述了这些工具如何协同工作。
Autoconf 和 Automake 生成 Makefile 在软件开发过程中,Makefile 是一个不可或缺的组成部分,它定义了整个工程的编译规则。然而,手动编写 Makefile 是一个复杂而且容易出错的过程。这就是 Autoconf 和 Automake ...
这时,Autoconf和Automake这两款强大的工具就派上了用场。它们可以帮助开发者自动化构建过程,生成符合GNU标准的Makefile,使得软件能在多种不同的Linux系统上编译和安装。 **Autoconf** Autoconf是一个用于配置源...
7-LINUX程序设计与交叉编译(7)-autoconf和automake工具使作(多个文件).pdf 学习资料 复习资料 教学资源
`autoconf` 和 `automake` 是两个经典的开源工具,它们主要用于Unix/Linux环境下的自动配置和构建过程,帮助开发者生成适应不同平台的`Makefile`。这两个工具的结合使用可以简化项目构建,确保源代码在多种环境下都...
Autoconf 和 Automake 是两个广泛应用于GNU项目中的工具,主要用于自动化构建过程。通过这些工具,开发者能够轻松地为自己的程序创建跨平台的`Makefile`,使得程序能够在不同的操作系统环境下顺利编译和安装。 - **...
`autoconf`和`automake`正是为此目的而设计的工具,它们能够帮助开发者简化这一过程,确保软件项目能够在不同的Unix-like环境中顺利构建。通过使用预定义的宏和模板,`automake`可以生成符合GNU标准的`Makefile.in`...
在Linux程序设计中,自动化构建工具如autoconf和automake对于开发者来说是非常重要的。它们能够帮助程序员创建可移植、可配置的Makefile,使得软件在不同的操作系统和硬件平台上的编译变得简单。以下是对这两个工具...
在软件开发领域,尤其是在开源社区,GNU 工具链中的 Autoconf、Automake 和 Libtool 是构建可移植性极强的应用程序的重要组成部分。这三者协同工作,使得开发者能够轻松地在不同操作系统和编译器环境下构建和管理...
综上所述,Autotools(包括Autoconf、Automake和Libtool)为开发者提供了一整套强大的工具链,极大地简化了跨平台软件的构建过程。通过理解和掌握这些工具的使用方法,开发者可以更加高效地开发和维护高质量的开源...
2010年最新英文版书籍; GNU开发过程中Autoconf Automake能够自动生成专业Makefile文件; Linux开发必不可少的开发工具; A Practitioner’s Guide to GNU Autoconf, Automake, and Libtool;
为了简化这个过程,GNU提供了`autoconf`和`automake`这两个工具,它们能自动生成Makefile,使得软件安装只需要执行“./configure”,“make”和“make install”。 `autoconf`是一个基于m4宏语言的脚本生成器,它...
Autoconf、Automake和Libtool是开源软件开发中常用的三个工具,它们构成了自动化构建系统的基础,使得源代码可以在多种不同的操作系统和编译器环境下编译和安装。这三者之间的协同工作大大简化了软件项目的配置和...
GNU Autoconf、Automake 和 Libtool 是开源软件开发中的三个关键工具,它们被广泛用于提高开发者效率和应用程序的可移植性。这本书由 Vaughan V. Gary、Ben Elliston、Tom Tromey 和 Ian Lance Taylor 共同编写,...
- **安装Autoconf/Automake**:确保开发环境中已经安装了Autoconf和Automake这两个工具。 #### 5. 创建配置脚本 接下来将详细介绍如何为一个简单的“Hello World”程序创建配置脚本。 ##### 5.1. 简评 为了演示...