ошибка 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.