Autoconf, Libtool и неопределенный AC_PROG_LIBTOOL

16409
user2093082

Я пытаюсь собрать библиотеку, и инструкции 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 где-то еще (так, чтобы кто-нибудь еще мог найти его).

16
удалите libtool и переустановите его. проверьте вашу версию, я видел эту проблему в версиях libtool до 2.4. `rpm -qa | grep libtool` driz 9 лет назад 0

5 ответов на вопрос

11
haw3d

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

в убунту:

sudo apt-get install libtool 

в основе redhat:

yum install libtool 
Вопрос уже сказал, что это не проблема. Kevin Panko 10 лет назад 4
7
Steve Wolf

I wasn't satisfied with all the "just reinstall" answers I've found all over the Internet in various forums, so was bound and determined to resolve this without installing a non-distro libtool. (I'm running on CentOS 7.)

The lightbulb above my head lit up when I read https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.html. The search path used to find the macro files is the one defined by --prefix, which by default is usually /usr/local. So autoconf for a package which will be installed to /usr/local searches /usr/local/share/aclocal-APIVERSION and /usr/local/share/aclocal.

On many distros, including CentOS7, the seven macro files for libtools are installed under /usr/share/aclocal rather than under /usr/local/share/aclocal. Consequently, they aren't found when the package you are building sets prefix to /usr/local.

To fix this if you already have a /usr/local/share/aclocal directory, type the following as 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 

To fix this if you don't have a /usr/local/share/aclocal directory, type the following as root:

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

Voilà -- problem solved.

Это единственное решение, которое действительно сработало в моем случае, после того, как я попробовал все установки libtool (re), предложенные здесь и в других местах. Спасибо Ahmed Nassar 8 лет назад 0
Пришлось удалить `argz` из списка, но в остальном это решение работало у меня. Спасибо! pchaigno 7 лет назад 0
Спасибо за полное объяснение! Что касается решения проблемы, то решение Дэна Ибанеза часто «чище» (от sys-admin pov) и проще одновременно. Eric Platon 6 лет назад 0
7
Dan Ibanez

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

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

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

Еще один способ сделать это: autoreconf -I $ HOME / install / libtool / share / aclocal Moraru Lilian 6 лет назад 0
Это работает! Спасибо @Dan Ibanez. rkioji 6 лет назад 0
1
User1911

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

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
jww
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на федоре.


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

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

$ 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. 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 ...