【教程】Autotools的初级使用

Autotoos官方Manual地址:https://www.gnu.org/software/autoconf/manual/autoconf.html#Making-configure-Scripts

下面是Autotools的几个工具的使用流程,通过这个使用流程,我们就可以大概了解Autotools的使用方法.


 

下面,我将以一个实例,具体讲解Autotools的使用方法

1.创建一个简单的.c文件,以做测试,内容如下

 

<style type="text/css">p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }</style><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#include<stdio.h></span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">intsum(int a,int b);</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">intmain()</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">{</span></span></p><p>        <span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">inta;</span></span></p><p>        <span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">a= sum(3,5);</span></span></p><p>        <span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">printf("Theresult is %d\n",a);</span></span></p><p>        <span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">return0;</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">}</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">intsum(int a,int b)</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">{</span></span></p><p>        <span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">intc = a + b;</span></span></p><p>        <span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">returnc;</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">}</span></span></p>

 

2.使用atuoscan(我是在源文件目录中执行的),生成config.scan,并修改config.scande内容,并将其改名为config.ac

执行autoscan生成config.scan

 

 

 

修改config.scan的内容,修改后(注释部分有提示哪些是修改内容)内容如下:

 

<style type="text/css">p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }</style><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#                                              -*- Autoconf -*-</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#Process this file with autoconf to produce a configure script.</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">AC_PREREQ([2.69])</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#ModifyBy Myself</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">AC_INIT(hello,1.0,847923458@qq.com)</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">AC_CONFIG_SRCDIR([hello.c])</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#ModifyBy Myself</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#AC_CONFIG_HEADERS([config.h])</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#ADDBy Myself</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">AM_INIT_AUTOMAKE(hello,1.0)</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#Checks for programs.</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">AC_PROG_CC</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#Checks for libraries.</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#Checks for header files.</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#Checks for typedefs, structures, and compiler characteristics.</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#Checks for library functions.</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">#ModifyBy Myself</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">AC_OUTPUT(Makefile)</span></span></p>

将config.scan重命名为config.ac

 

 

<style type="text/css"></style><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">mv  configure.scan   configure.ac</span></span></p>

3.使用aclocal以生成aclocal.m4文件

 

4.执行autoconf以生成configure(可执行文件,用来生成Makefile)

5.编写Makefile.am文件(用来生成Makefile.in),其内容如下:

 

<style type="text/css">p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }</style><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">bin_PROGRAMS=hello</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">hello_SOURCE=hello.c</span></span></p>

6.执行命令automake --add-missing生成Makefile.in

 

执行automake --add-missing后,提示如下:

 

<style type="text/css">p { margin-bottom: 0.1in; line-height: 120%; }a:link {  }</style><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">root@jiasike:/home/jiasike/hello#automake --add-missing </span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">configure.ac:15:warning: AM_INIT_AUTOMAKE: two- and three-arguments forms aredeprecated.  For more info, see:</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">configure.ac:15:http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">configure.ac:18:installing './compile'</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">configure.ac:15:installing './install-sh'</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">configure.ac:15:installing './missing'</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:installing './INSTALL'</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:error: required file './NEWS' not found</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:error: required file './README' not found</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:error: required file './AUTHORS' not found</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:error: required file './ChangeLog' not found</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:installing './COPYING' using GNU General Public License v3 file</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:    Consider adding the COPYING file to the version control system</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:    for your code, to avoid questions about which license yourproject uses</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">Makefile.am:installing './depcomp'</span></span></p><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">root@jiasike:/home/jiasike/hello#</span></span></p>

上面的提示告诉我们,还需要4个文件:NEWS README AUTHORS ChangeLog

 

所以,下一步我们要创建这四个文件,用命令:

 

<style type="text/css"></style><p><span style="font-family:Comic Sans MS, cursive;"><span style="font-size:18px;">touch  NEWS   README   AUTHORS   ChangeLog</span></span></p>

接着再一次执行automake

 

此时,我们可以看到,已经生成Makefile.in

7.执行configure生成Makefle

可以看到Makefile已经生成

8.检测Makefile是否能正常工作

make后,执行./hello若打印 The result is 8(如下图)则说明Makefile能正常工作

当然,也可以执行make install后,执行hello(可在任意位置执行).

更多精彩资讯,请扫码关注
qr

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值