我是autotools的新手,并遵循此tutorial。但我无法解决这个错误,
$ automake
configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found.
..
Makefile.am: error: required file './depcomp' not found
..
/usr/share/automake-1.12/am/depend2.am: error: am__fastdepCC does not appear in AM_CONDITIONAL
..
/usr/share/automake-1.12/am/depend2.am: error: AMDEP does not appear in AM_CONDITIONAL
..
我的configure.ac
文件是
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AM_INIT_AUTOMAKE(hello,1.0)
AC_CONFIG_SRCDIR([config.h.in])
AM_CONFIG_HEADERS(config.h)
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
AC_CHECK_HEADERS([sys/time.h])
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_CHECK_FUNCS([gettimeofday])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
我在互联网上检查了解决方案,我的configure.ac
看起来不错,不知道它有什么问题。
答案 0 :(得分:25)
您从哪里复制并粘贴了configure.ac
?无论该网站是什么,您都应该从书签中删除它!
您正在使用新的AC_INIT
方式来指示包版本,使用旧的AM_INIT_AUTOMAKE
方式执行相同的操作。不要两者都做。 (旧和 new 是指10年前发生的一个开关。)从Automake 1.13开始,用两个参数调用AM_INIT_AUTOMAKE
的旧方法是no-longuer支撑。
在您的情况下,删除AM_INIT_AUTOMAKE
参数,并正确设置AC_INIT
参数以反映项目的名称和版本应该足够了。
请参阅the automake manual,了解最简单的configure.ac
开头的最新示例。
不要自己调用automake
,只需使用autoreconf -vfi
,以便按正确的顺序运行所有相关工具,然后安装丢失的文件。
答案 1 :(得分:7)
你必须逐行修复它。
首先,您的Makefile.am
需要depcomp
。因此,您必须将其复制到您的文件夹(对于此步骤,您可以运行automake --add-missing
以便自动添加丢失的文件):
cp -a /usr/share/automake-X.XX/depcomp .
其次,您必须在aclocal
之前运行automake
:
$ aclocal
最后,您可以运行automake
:
$ automake
$ autoconf
答案 2 :(得分:0)
在我的例子中,将libtool从2.2.6更新为2.4.6。 ps:我使用的是1.15版本的automake。 在运行aclocal和autoheader之前运行libtoolize。
答案 3 :(得分:0)
试试
autoreconf -i
autoreconf 将通过添加推荐或必需的缺失文件将项目引导到可分发状态。