Automake error '. /ltmain.sh - не найден.

я установил mingw и msys с помощью mingw-get-setup.exe. Я также установил Autotools (autoconf, automake,m4,libtool) в C:/opt/autotools.

когда я запускаю automake, всегда возникает следующая ошибка:

configure.ac:11: error: required file './ltmain.sh' not found

если скопировать ltmain.sh из установленного дерева libtool выполнение завершится нормально.

как я могу configuure сожалению, чтобы найти ltmain.sh без копирования?

1 ответов


на autoconf/automake/libtool проект, вы должны вызвать:

  • libtoolize: это копирует / связывает несколько сценариев поддержки, включая ltmain.sh (который является основным компонентом libtool).
  • aclocal: Это ищет все макросы m4, которые понадобятся вашему скрипту настройки, и делает локальную копию для облегчения доступа.
  • autoheader: опционально, если вы хотите использовать config.h/AC_CONFIG_HEADERS, в противном случае все макросы результатов теста будут встроены при вызове компилятор.
  • autoconf: развернуть все макросы, используемые configure.ac на configure сценарий.
  • automake: все Makefile.am на Makefile.in шаблоны. Вероятно, вы хотите вызвать это с помощью --add-missing таким образом, дополнительные сценарии поддержки могут быть связаны/скопированы в ваш проект (например,compile, missing, depcomp, test-driver и т. д.).

вы, скорее всего, захотите добавить bootstrap скрипт для каждого из ваших проектов, который вызывает все эти инструменты, в таком порядке. Или вы можете быть ленивыми и просто вызвать autoreconf -i и посмотрите, работает ли это для вашего проекта.

после (и в то время) у вас есть работа Makefiles генерируется скриптом configure, autotools заботится о себе; то есть, если вы редактируете configure.ac, или любое Makefile.am, правильные инструменты выше будут вызваны снова, чтобы сохранить все обновлено, просто запустив make. Просто будьте осторожны, чтобы не создать синтаксическую ошибку в Makefile.am файлы, в противном случае вы можете закончить с сломанный Makefiles, вызывая make отказаться от запуска - в этом случае вы должны запустить bootstrap скрипт (или autoreconf) вручную.

EDIT:

на руководство automake говорит Это О aclocal:

aclocal ожидается, что исчезнет.

и дальше:

С точки зрения пользователя, aclocalудаление может оказаться болезненным. Существует простой меры предосторожности, которые вы можете принять, чтобы сделать этот переключатель более бесшовным:никогда не называйте себя aclocal. Держи этого парня под исключительным контролем autoreconf и правила восстановления Automake.

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