ошибка, использующих 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
..
Мой 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
выглядит нормально, не знаю, что с ним не так.
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
, чтобы сделать то же самое. Не делай так. (Old и new относятся к переключению, которое произошло 10 лет назад.) Начиная с Automake 1.13 старый способ вызоваAM_INIT_AUTOMAKE
с двумя аргументами не поддерживается.В вашем случае удаление аргументов
AM_INIT_AUTOMAKE
и достаточно правильно настроить аргументAC_INIT
, чтобы он отражал название и версию вашего проекта.Смотритеруководство по автоматическому изготовлению для современного примера очень простого
configure.ac
для начала.Вместо того, чтобы вызывать
automake
самостоятельно, просто используйтеautoreconf -vfi
, чтобы он запускал все соответствующие инструменты в правильном порядке и устанавливал отсутствующие файлы.