16

Я пытаюсь собрать библиотеку, и инструкции README должны вызвать configure.ac, а затем make.

К сожалению, я сталкиваюсь с ошибкой:

configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

Теперь я знаю, что у меня установлен libtool (я использую Scientific Linux 6.2 (без обновления) и использую yum --downloadonly для получения rpms от automake, autoconf, libtool и libtool-devel на всякий случай).

Они установлены, и в настоящее время libtool находится в /usr /share /libtool. Однако autoconf не может его найти.

Все результаты Google были типа «установить libtool», что мне совсем не помогло. Любая помощь или руководство будут очень признательны. Я не уверен, что проблема в том, что rpm -i облажался с получением libtool здесь, или мне нужно связать /usr /share /libtool где-то еще (так, чтобы кто-нибудь еще мог найти его).

5 ответов5

11

вы должны установить libtool

в убунту:

sudo apt-get install libtool

в основе redhat:

yum install libtool
8

Я также установил libtool и другие файлы в нестандартные каталоги, и эта ошибка на самом деле означает, что autoconf не может найти макросы libtool m4. Да, это может быть вызвано не установкой libtool, а также тем, что он находится в нестандартном каталоге установки. Вот мое исправление:

export ACLOCAL_PATH=$HOME/install/libtool/share/aclocal:$ACLOCAL_PATH

который я поместил в мой .bash_profile

7

Я не был удовлетворен всеми "просто переустановленными" ответами, которые я нашел по всему Интернету на различных форумах, поэтому был полон решимости решить эту проблему, не устанавливая не дистрибутив libtool. (Я работаю на CentOS 7.)

Когда я прочитал https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.html, лампочка над моей головой загорелась. Путь поиска, используемый для поиска файлов макроса, определен параметром --prefix , который по умолчанию обычно является /usr/local . Таким образом, autoconf для пакета, который будет установлен в /usr/local /usr/local/share/aclocal-APIVERSION и /usr/local/share/aclocal .

Во многих дистрибутивах, включая CentOS7, семь макрофайлов для libtools устанавливаются в /usr/share/aclocal а не в /usr/local/share/aclocal . Следовательно, они не найдены, когда пакет, который вы создаете, устанавливает префикс /usr/local .

Чтобы это исправить, если у вас уже есть каталог /usr/local/share/aclocal , введите в качестве пользователя root:

for file in argz libtool ltdl ltoptions ltsugar ltversion lt~obsolete
do
  ln -s /usr/share/aclocal/$file.m4 /usr/local/share/aclocal/$file.m4
done

Чтобы это исправить, если у вас нет каталога /usr/local/share/aclocal , введите в качестве пользователя root следующее:

ln -s /usr/share/aclocal /usr/local/share/aclocal

Вуаля - проблема решена.

1

Вам необходимо переустановить его, чтобы исправить ошибку, поэтому выполните следующие действия:

1] Удалить текущий libtool, если он установлен: sudo apt-get purge libtool

2] Загрузите его с официального сайта https://www.gnu.org/software/libtool/

3] Распакуйте его: tar -xzvf "name of the tar_file"

4] Введите папку и введите: ./configure && make

5] Установите его: sudo make install

И все готово, ошибка должна быть исправлена!

0
configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

Теперь я знаю, что у меня установлен libtool ...

Я обнаружил, что это обычно указывает на то, что у вас не установлен механизм разработки libtool (хотя у вас может быть установлен libtool ).

Вам следует установить libltdl-dev в Debian и Ubuntu; и libtool-ltdl-devel на Fedora.


Вот поиски пакетов.

мягкая фетровая шляпа

$ yum search libtool
======================== Name Exactly Matched: libtool =========================
libtool.x86_64 : The GNU Portable Library Tool
======================= Summary & Name Matched: libtool ========================
libtool-ltdl.x86_64 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl.i686 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl-devel.x86_64 : Tools needed for development using the GNU Libtool
                          : Dynamic Module Loader
libtool-ltdl-devel.i686 : Tools needed for development using the GNU Libtool
                        : Dynamic Module Loader
=========================== Summary Matched: libtool ===========================
mingw32-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader
mingw64-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader

Ubuntu

$ apt-cache search libtool
autotools-dev - Update infrastructure for config.{guess,sub} files
libltdl-dev - System independent dlopen wrapper for GNU libtool
libltdl7 - System independent dlopen wrapper for GNU libtool
libtool - Generic library support script
libtool-bin - Generic library support script (libtool binary)
libtool-doc - Generic library support script
...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .