今天按照书本上的来学习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
于 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了。
shimuxi 于 2011-10-30 19:54:33发表:
你用的是什么书啊?最近我也在学习autotools但是不知道用什么参考书。。。
martin0010 于 2011-10-27 11:28:30发表:
好