在使用autotool之前先确认有没有安装以下工具:
aclocal、autoscan、autoconf、autoheader、automake,
可以使用which命令随便查看一个工具如:which aclocal,如果没有安装可以使用下面命令进行安装sudo apt-get install autoconf
在一个目录夹建立一个c文件
该命令会在指定目录以及子目录树中检测源文件,若没有给出目录则默认就会在当前目录以及子目录检查。
在执行该命令时候会autoscan会尝试读取configure.ac,若没有该文件则自动创建configure.scan
configure.scan的内容如下:(有增添以及修改)
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69]) #表示autoconf版本
AC_INIT([hello], [1.0], [null]) #hello表示当前程序名,1.0表示当前程序版本,null表示一般表示作者的邮箱,也也可以是其他描述(修改)
AC_CONFIG_SRCDIR([hello.c]) #用来检测文件是否存在的宏,这里的hello.c文件表示当前目录下的源文件(修改)
AC_CONFIG_HEADERS([config.h]) #用于生成config.h文件,给autoheader使用
AM_INIT_AUTOMAKE([hello],[1.0]) #(添加)
# 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])#(添加)
AC_OUTPUT
注意:运行之前先要将configure.scan重命名为configure.ac 命令为 mv configure.scan configure.ac
运行该命令生成aclocal.m4文件,该文件主要处理本地的宏定义
该命令会生成configure可运行文件
该命令负责生成config.h.in
注意:运行之前先要将创建Makefile.am文件,文件内容如下:
AUTOMAKE_OPTIONS=foreign #表示软件等级 软件等级有三个分别是foreign、gnu和gnits 默认的是gnu
bin_PROGRAMS= hello #执行文件名
hello_SOURCES= hello.c #表示hello这个执行需要的原始文件
到此为止已经生成了makefile文件
注:使用该方法生成的makefle可以使用make install将程序安装到bin目录下,也可以使用make dist将程序打包发布