红联Linux门户
Linux帮助

autotools使用问题

发布时间:2011-10-24 17:29:41来源:红联作者:专攻Linux/ARM
今天按照书本上的来学习autotools的使用,但是遇到一些问题,在此发贴希望高手大虾们能帮忙指点迷津,感激不尽,也让和我遇到同样问题的朋友能有解决方法。
这是我用autotools工具中使用的第一条命令autoscan之后生成的configure.scan里面的内容
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.66])
#AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_INIT(test,1.0) (这一行是要求添加的)
AM_INIT_AUTOMAKE(test,1.0)(同上)
AC_CONFIG_SRCDIR([2-7-main.c])
AC_CONFIG_HEADERS([config.h])(问题出在这里,这里的C按书上要求更改为M即改为AM_CONFIG_HEADERS([config.h]),但是改了之后接下来用aclocal命令却有警告
configure.in:9: warning: macro `AM_CONFIG_HEADERS' not found in library请问这是怎么会是呢?


# 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_OUTPUT
文章评论

共有 3 条评论

  1. 于 2013-05-19 17:47:13发表:

    “AM_CONFIG_HEADERS([config.h]),但是改了之后接下来用aclocal命令却有警告”
    注意看下边这两条:
    AC_CONFIG_HEADERS
    AM_CONFIG_HEADER
    看出区别了吗?第二个字母‘C’、‘M’,末尾的‘S’。

    AC指autoconf宏,AM指automake宏。

    使用AC_CONFIG_HEADERS([config.h]) ,在执行aclocal后,再执行条autoheader就ok了。autoheader似乎是要生成config.h.in模板,为config.h的生成做准备。生成的config.h里是一些宏,定义了软件名、版本号等等字符串,定义了一些头文件是否存在等。添加到我们的程序中帮助我们写程序,我认为GNU标准的程序用到它做些事情,我们自己写的程序不按GNU标准走就没什么用,可以注释掉这行的,也省了autoheader了。

  2. shimuxi 于 2011-10-30 19:54:33发表:

    你用的是什么书啊?最近我也在学习autotools但是不知道用什么参考书。。。

  3. martin0010 于 2011-10-27 11:28:30发表: