ошибка automake: не найден правильный вызов AM INIT AUTOMAKE

Я новичок в 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
  ..

мой и

   # -*- 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 выглядит нормально, не знаю, что с ним не так.

3 ответов


вы должны исправить это строка за строкой.

во-первых, ваш Makefile.am требуются depcomp. Итак, вы должны скопировать его в свою папку (для этого шага вы можете запустить automake --add-missing чтобы автоматически добавлять отсутствующие файлы):

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

во-вторых, вы должны выполнить aclocal до automake:

$ aclocal

наконец, вы можете запустить automake:

$ automake
$ autoconf

где вы скопировали и вставили свой configure.ac с? Каким бы ни был этот сайт, вы должны удалить его из своих закладок!

вы смешиваете новые AC_INIT способ указать версию пакета, со старым AM_INIT_AUTOMAKE способ сделать то же самое. Не делай так. (старый и новая обратитесь к коммутатору, который произошел 10 лет назад.) Начиная с Automake 1.13 старый способ вызова AM_INIT_AUTOMAKE С двумя аргументами не поддерживается-longuer.

в вашей дело, удаление AM_INIT_AUTOMAKE Аргументы, и правильно установив AC_INIT аргументов для отражения имени и версии вашего проекта должно быть достаточно.

посмотреть руководство automake для современного примера очень простой configure.ac для начала.

вместо automake сами, просто использовать autoreconf -vfi чтобы он запускал все соответствующие инструменты в правильном порядке и устанавливал отсутствующие файлы.


в моем случае обновление libtool с 2.2.6 до 2.4.6. ps: я использую 1.15 версию automake. Запустите libtoolize перед запуском aclocal и autoheader.