autotools自动编译系列之一---autotools安装

1.介绍

Linux环境下,我们编译程序啥的都是一般用的GCC&&GDB等等工具,直接使用GCC命令进行编译操作。这种方式一般是适用于程序文件比较少,组织结构比较简单的情况。但是,当我们程序文件比较的多的时候,或者是程序文件组织结构比较的复杂(例如在程序文件夹中存在文件夹多层嵌套以及复杂引用等),此时我们如果是直接使用GCC一点一点的编译工作量会非常的大,而且万一程序修改了,还要重新的再工作一遍。为此,我们有了make工具,依靠Makefile辅助文件,我们可以方便的进行工程的管理,以及编译操作。当程序很复杂的时候,依靠我们去手工的建立、维护Makefile文件是非常的不现实的,不仅很复杂,而且费时费力,还容易出错。为此,就有了我们的_Autotools_工具,只要输入工程中的目标文件、依赖文件、文件目录等信息就可以自动生成Makefile。这时使用autotools工具就是一个不错的选择,只要输入工程中的目标文件、依赖文件、文件目录等信息就可以自动生成Makefile。autotools工具是个系列工具,主要有:aclocal、autoscan、autoconf、autoheader、automake。

2.autotools组成

名称 功能  
autoscan autoscan是用来扫描源代码目录生成configure.scan文件的。 configure.scan包含了系统配置的基本选项,里面都是一些宏定义。我们需要将它改名为configure.in
aclocal aclocal是一个perl脚本程序。aclocal根据configure.in文件的内容,自动生成aclocal.m4文件。aclocal的定义是:“aclocal - create aclocal.m4 by scanning configure.ac”。 生成的aclocal.m4是宏展开文件
autoconf autoconf是用来产生configure文件的  configure.in文件的内容是一些宏,这些宏经过autoconf处理后会变成检查系统特性、环境变量、软件必须的参数的shell脚本
autoheader 自动生成config.h.in 在configure生成config.h时候的in文件
automake 我们使用automake --add-missing来产生Makefile.in  Makefile.am是用来生成Makefile.in的,需要你手工书写


3.autotools处理流程

Autotools使用流程:
1.目录树的最高层运行autoscan,生成configure.scan文件;
2.运行aclocal,生成aclocal.m4文件;
3.运行autoconf,生成configure配置脚本;
4.运行autoheader,生成config.h.in文件;
5.手工编写Makefile.am文件;
6.运行automake,生成Makefile.in;
7.运行配置脚本configure,生成Makefile。

4.autotools安装

[root@localhost ~]# yum install automake
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package automake.noarch 0:1.13.4-3.el7 will be installed
--> Processing Dependency: autoconf >= 2.65 for package: automake-1.13.4-3.el7.noarch
--> Processing Dependency: perl(TAP::Parser) for package: automake-1.13.4-3.el7.noarch
--> Running transaction check
---> Package autoconf.noarch 0:2.69-11.el7 will be installed
--> Processing Dependency: m4 >= 1.4.14 for package: autoconf-2.69-11.el7.noarch
---> Package perl-Test-Harness.noarch 0:3.28-3.el7 will be installed
--> Running transaction check
---> Package m4.x86_64 0:1.4.16-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================
 Package                                             Arch                                     Version                                           Repository                              Size
=============================================================================================================================================================================================
Installing:
 automake                                            noarch                                   1.13.4-3.el7                                      base                                   679 k
Installing for dependencies:
 autoconf                                            noarch                                   2.69-11.el7                                       base                                   701 k
 m4                                                  x86_64                                   1.4.16-10.el7                                     base                                   256 k
 perl-Test-Harness                                   noarch                                   3.28-3.el7                                        base                                   302 k

Transaction Summary
=============================================================================================================================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 1.9 M
Installed size: 4.9 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): automake-1.13.4-3.el7.noarch.rpm                                                                                                                               | 679 kB  00:00:00     
(2/4): autoconf-2.69-11.el7.noarch.rpm                                                                                                                                | 701 kB  00:00:00     
(3/4): perl-Test-Harness-3.28-3.el7.noarch.rpm                                                                                                                        | 302 kB  00:00:00     
(4/4): m4-1.4.16-10.el7.x86_64.rpm                                                                                                                                    | 256 kB  00:00:00     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                        4.8 MB/s | 1.9 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : perl-Test-Harness-3.28-3.el7.noarch                                                                                                                                       1/4 
  Installing : m4-1.4.16-10.el7.x86_64                                                                                                                                                   2/4 
  Installing : autoconf-2.69-11.el7.noarch                                                                                                                                               3/4 
  Installing : automake-1.13.4-3.el7.noarch                                                                                                                                              4/4 
  Verifying  : m4-1.4.16-10.el7.x86_64                                                                                                                                                   1/4 
  Verifying  : perl-Test-Harness-3.28-3.el7.noarch                                                                                                                                       2/4 
  Verifying  : autoconf-2.69-11.el7.noarch                                                                                                                                               3/4 
  Verifying  : automake-1.13.4-3.el7.noarch                                                                                                                                              4/4 

Installed:
  automake.noarch 0:1.13.4-3.el7                                                                                                                                                             

Dependency Installed:
  autoconf.noarch 0:2.69-11.el7                                m4.x86_64 0:1.4.16-10.el7                                perl-Test-Harness.noarch 0:3.28-3.el7                               

Complete!


猜你喜欢

转载自blog.csdn.net/kongshuai19900505/article/details/79003835