Ошибка несоответствия версии libtool - PullRequest
69 голосов
/ 23 июня 2010

При сборке приложения с помощью kdevelop 3.5 в Ubuntu 10.04 я получаю следующие ошибки:

libtool: Version mismatch error. This is libtool 2.2.6 Debian-2.2.6a-4, but the
libtool: definition of this LT_INIT comes from libtool 2.2.6b.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6 Debian-2.2.6a-4
libtool: and run autoconf again.
make[2]: *** [wktools4] Error 63
make[2]: Target `all' not remade because of errors.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
*** Exited with status: 2 ***

Где я могу получить необходимую версию libtool или как воссоздать aclocal.m4?

Ответы [ 9 ]

126 голосов
/ 08 июля 2010

Попробуйте запустить

autoreconf --force --install
./configure
make

в корневой директории вашего проекта.

Если это не сработает, попробуйте сначала запустить make maintainer-clean, а затем перейдите к шагу 1.

Если это все еще не работает, запустите make maintainer-clean, а затем удалите каждый сгенерированный файл в корневом каталоге вашего проекта; включая aclocal.m4, любой каталог m4, любой каталог autom4te.cache, configure, Makefile.in, config.h, config.h.in, config.status, libtool, ltmain.sh и т. д. Затем перейдите к шаг 1.

Почему это работает: libtool и aclocal.m4 - оба файла, сгенерированные вашей системой сборки. Если они не синхронизированы (генерируются разными версиями инструментов сборки), вы получите эту ошибку. Обычно это не должно происходить, но пример чего-то, что может вызвать это, - когда вы возвращаете сгенерированные файлы в систему контроля версий.

Что это решение делает, это удаляет и регенерирует все автоматически сгенерированные файлы. Как только они будут стерты и восстановлены, они больше не будут синхронизированы.

10 голосов
/ 09 января 2011

Попробуйте

autoreconf -i

Опция -i важна.

6 голосов
/ 12 апреля 2018

Если вы используете Anaconda, это может быть связано с libtool и autoconf из разных источников.Вы можете проверить это, выполнив

which libtool

which autoconf

Мой libtool был из conda, а autoconf был системным пакетом.Удалите autoconf и установите его снова, используя conda

apt remove -y autoconf (Ubuntu / Debian)

conda install -c anaconda autoconf

Примечание. Возможно, вам также потребуется установить automake.

conda install -c anaconda automake

3 голосов
/ 21 марта 2012

возможно вы установили два libtools разной версии. Попробуйте apt-get remove all (пока вы ничего не получите, когда вы наберете which libtool в командной строке), затем apt-get install тот, который вам нравится.

1 голос
/ 23 июня 2010

Попробуйте запустить aclocal

0 голосов
/ 09 мая 2019

Я также столкнулся с этой проблемой.В моем случае в выводе ./autogen.sh есть:

libtoolize: Вам необходимо добавить содержимое следующих файлов в 'aclocal.m4': libtoolize: '/aclocal/libtool.m4'libtoolize:' /aclocal/ltoptions.m4 'libtoolize:' /aclocal/ltversion.m4 'libtoolize: рассмотрите возможность добавления' AC_CONFIG_MACRO_DIRS ([m4]) 'в configure.ac, libtoolize: и повторного запуска libtoolize и aclocal.libtoolize: попробуйте добавить '-I m4' к ACLOCAL_AMFLAGS в Makefile.am.

Я просто добавляю содержимое трех файлов * .m4 в / aclocal / в файл aclocal.m4:

cat <a path>/aclocal/libtool.m4 <a path>/aclocal/ltoptions.m4 <a path>/aclocal/ltversion.m4 >> aclocal.m4 

тогда сделай.

0 голосов
/ 03 марта 2018

Ничего из вышеперечисленного не сработало.После того как я деактивировал среду conda, она заработала:

source deactivate

0 голосов
/ 20 декабря 2015

Ничего из вышеперечисленного не сработало.

Тогда это сработало:

autoconf -f
./configure
make
0 голосов
/ 12 декабря 2012

Я решаю эту деинсталляцию libtool системы и установку из апстрима: git clone git: //git.savannah.gnu.org/libtool.git

sudo apt-get install texinfo autoconf automake make
./bootstrap
./configure
make
sudo make install
...