参考 http://blog.chinaunix.net/uid-25100840-id-271131.html

  http://blog.sina.com.cn/s/blog_4c2bf01a01014fwj.html

下载与安装

下载地址http://www.gnu.org/software/software.html

  需要下载的工具包有:autoconf-2.69  automake-1.14  m4-1.4.17

  我下载的是最新的版本

安装顺序  m4->autoconf->automake  (参考的博文说这个顺序很重要,刚开始很纳闷,后来在安装的过程中,发现之间是有依赖关系的)

  安装方法:./configure  ->   make  ->  make install

使用方法    

autotool工具使用到的工具有:

aclocal

autoscan

autoconf

autoheader

automake

自动生成makefile的过程中需要做的有:

1 编写Makefile.am文件

 SUBDIRS = lib #若需要编译的源文件在一个子目录下(lib为你的子目录名),需要申明,如果没有就没有必要写

 AUTOMAKE_OPTIONS = foreign #如果不添加此行,会在执行automake -a 命令时报错,找不到“NEWS”“README”“AUTHORS”“ChangeLog"等文件
bin_PROGRAMS = hello   #需要生成的目标文件
hello_SOURCES = hello.c  #源文件 hello_LDADD = ./lib/libprint.a  #依赖到库文件
 noinst_LIBRARIES = libprint.a  #需生成的链接库 noinst_ 只想编译不安装到系统中,inst_安装到系统中
libprint_a_SOURCES = print.c ../include/print.h #依赖文件

注意:如果此时,print.h若又包含一个base.h头文件,以上的写法就要做修改,libprint_a_SOURCES 可用修改如下  

libprint_a_SOURCES = print.c

然后再添加一行:AM_CPPFLAGS= -I  ../include 即可,最后在项目根目录的Makefile.am中添加这一行。  

2  执行命令 autoscan 生成文件configure.scan,修改此文件,另存为configure.ac.修改或添加的内容如下:

 AC_PREREQ([2.69])
AC_INIT(hello,0.01) #生成程序名,版本号,联系邮箱 4 AM_INIT_AUTOMAKE #此处为添加的 AC_PROG_RANLIB #此处为添加的,没有使用到自定义的库的时候,不添加此行也不会报错 AC_CONFIG_SRCDIR([hello.c])
AC_CONFIG_HEADERS([config.h]) # Checks for programs.
AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_CONFIG_FILES([Makefile
lib/Makefile])
AC_OUTPUT

3  执行命令  aclocal

4  执行命令  autoconf

5  执行命令  autoheader

6  执行命令  automake  -a

7  执行命令  ./configure

8   make

autotools工具使用记录的更多相关文章

  1. automake - 使用 autotools 工具集

    一般而言,对于小项目或玩具程序,手动编写 Makefile 即可.但对于大型项目,手动编写维护 Makefile 成为一件费时费力的无聊工作. 本文介绍 autotools 工具集自动生成符合 Lin ...

  2. (6)autotools工具的使用

       autotools是专门用来生成Makefile的一系列工具,包括autoscan.aclocal.autoheader.autoconf.automake等.     (1)autotools ...

  3. 使用autotools工具用configure、make、make install编译安装linux工程的详细步骤

    使用autotools工具用configure.make.make install编译安装linux工程的详细步骤 转载tmxkwzy 最后发布于2016-11-24 10:20:15 阅读数 324 ...

  4. [Java学习] JSON工具学习记录--FastJSON

    最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fas ...

  5. myEclipse 常用快捷键,工具等记录

    小的不才,从北大青鸟毕业,出来之后到第一家公司进行工作,当时认为自己很牛逼,很无敌,但是出来之后发现在学校里学的那些东西,在工作中,除了会写一点if...else之外,连循环都很少写. 然而有用的工具 ...

  6. Pycharm工具配置记录

    安装Pycharm工具后,常用配置方法记录: 1:开启“设置”快捷按钮 2:进入设置后,选择或添加python解释器 当然,python解释器需要提前安装好. 3:在设置里,配置默认模板 4 :自动更 ...

  7. mysql基础-数据库初始化操作必要步骤和客户端工具使用-记录(二)

    0x01 mysql启动时,读取配置文件的顺序 Default options are read from the following files in the given order:/etc/my ...

  8. Fiddler抓包工具使用记录

    前言 Fiddler是一款强大的Web调试代理工具,又称抓包软件,本文记录如何使用Flidder进行抓包 Fiddler官网:https://www.telerik.com/fiddler 下载安装 ...

  9. Zwibbler—前端Canvas绘图工具使用记录

    本人第一次发博客,用意在于记录自己在开发过程中用到的实用工具并分享出来,写的可能不好,请大家多多包涵!!! 工具官网:https://www.zwibbler.com 基于Canvas的一个前端绘画工 ...

随机推荐

  1. 介绍Android HAL的一篇好文章

    从Linux driver到HAL再到JNI再到Java都讲了一个遍,算是对HAL有一个基本的了解了,其中hw_module_t的设计非常巧妙,每个module都会有自己的特定函数,而HAL是不知道的 ...

  2. JavaScript原型理解

    这东西我还不是很理解,但是把自己实践的过程记录下来,希望积累到一定程度,能自然而而然的理解了.很多东西我是这样慢慢理解的,明白为啥是那样子,真的很神奇哦.少说废话,开始吧. 可以先阅读这篇文章 fun ...

  3. Docker 容器中“TERM environment variable not set.”问题解决

    在查容器内部资源利用情况时候,发现top命令无法使用,报错“TERM environment variable not set.”.从网上找到了解决方案,如下. [root@localhost ~]# ...

  4. 结合Apache和Tomcat实现集群和负载均衡 JK 方式

    本文基本参考自 轻松实现Apache,Tomcat集群和负载均衡,经由实操经历记录而成,碰到些出入,以及个别地方依据个人的习惯,所以在一定程度上未能保持原文的完整性,还望原著者海涵. 因原文中有较多的 ...

  5. WIFI驱动的移植 realtek 8188

    一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为例到官网下载相应的驱动, 解压后可以 ...

  6. BooleanToVisibilityConverter.cs

    //---------------------------------------------------------------------------- // // Copyright (C) M ...

  7. 2015弱校联盟(1) -J. Right turn

    J. Right turn Time Limit: 1000ms Memory Limit: 65536KB frog is trapped in a maze. The maze is infini ...

  8. composer安装fxp插件时候提示内存不足且没有交换空间的解决办法

    The following exception is caused by a lack of memory and not having swap Check https://getcomposer. ...

  9. 个人练习--gif图流程

    1:素材图片a  图片b 2:窗口--->时间轴/动画 3:复制所选帧--->设置帧延迟 4:文件--->存储为WEB格式--->gif格式

  10. Delphi TDatabase 组件

    TDatabase 组件是一个能与远程数据库通过 BDE 建立连接的组件,可使本地端的程序获取远程的数据. 通过 TDatabase 组件的使用,可以减少与远程数据库连接的窗口,当远程数据库的设置变动 ...