14

我是 autotools 的新手,并遵循本教程。但我无法解决这个错误,

   $ 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看起来很好,不知道是什么问题。

4

4 回答 4

29

你从哪里复制粘贴你configure.ac的?无论该站点是什么,您都应该将其从书签中删除!

您正在将AC_INIT指示软件包版本的新方法与AM_INIT_AUTOMAKE执行相同操作的旧方法混合在一起。不要两者都做。(新旧指的是 10 年前发生的切换。)从 Automake 1.13 开始,不再支持使用两个参数进行调用的旧方法AM_INIT_AUTOMAKE

在您的情况下,删除AM_INIT_AUTOMAKE参数并正确设置参数AC_INIT以反映项目的名称和版本就足够了。

有关非常简单的最新示例,请参阅automake 手册configure.ac

而不是调用automake自己,只需使用autoreconf -vfi它以正确的顺序运行所有相关工具,并安装丢失的文件。

于 2013-04-24T16:15:28.697 回答
11

您必须逐行修复它。

首先,您Makefile.am需要的depcomp. 因此,您必须将其复制到您的文件夹(对于此步骤,您可以运行automake --add-missing以自动添加丢失的文件):

cp -a /usr/share/automake-X.XX/depcomp .

其次,您必须在aclocal之前运行automake

$ aclocal

最后,您可以运行automake

$ automake
$ autoconf
于 2016-10-21T07:51:15.543 回答
1

就我而言,将 libtool 从 2.2.6 更新到 2.4.6。ps:我用的是1.15版本的automake。在运行 aclocal 和 autoheader 之前运行 libtoolize。

于 2017-03-16T11:49:40.700 回答
0

尝试

autoreconf -i

autoreconf 将通过添加推荐或需要的缺失文件将项目引导到可分发状态。

于 2020-12-29T04:57:41.970 回答