ошибка несоответствия версии libtool
Вопрос
При создании моего приложения с 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?
Решение
Попробуйте бежать
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
являются оба файлами, которые генерируются вашей системой сборки. Если они не синхронизированы (сгенерированы различными версиями инструментов сборки), вы получите эту ошибку. Обычно это не должно происходить, но пример чего-то может вызвать, когда вы проверяете сгенерированные файлы для контроля источника.
Что это решение делает удаление и восстановить все аутогенераторы файлы. Как только они стерты и регенерируются, они больше не могут быть вне синхронизации.
Другие советы
Пытаться
autoreconf -i
То -i
вариант важен.
Если вы используете AnaConda, то это может быть связано с libTool и AutoConf из разных источников. Вы можете проверить это, выполнив
which libtool
which autoconf
Мой LibTool был из Кондона и AutoConf был системным пакетом. Удалить Autoconf и установил его снова, используя CONDA
apt remove -y autoconf
(Убунту / Debian)
conda install -c anaconda autoconf
Примечание. Возможно, вам может потребоваться установить Automake.
conda install -c anaconda automake
Может быть, вы установили два LibTools разной версии. Попробуй apt-get remove all
(пока вы ничего не получите, когда вы напечатаете which libtool
в командной строке), то apt-get install
тот, который тебе нравится.
Попробуйте запустить aclocal
Я решу эту удаление системы LibTool и установку из UPStream: Git Clone Git: //git.savannah.gnu.org/libtool.git
Sudo APT-Get Установите Texinfo Autoconf Automake Automake Make ./bootstrap ./Configure make sudo make install
Ни один из вышеперечисленных не работал.
Тогда это сработало:
autoconf -f
./configure
make
Ни один из вышеперечисленных не работал. После того, как я деактивировал кондейскую среду, она работала:
source deactivate
Я также сталкиваюсь с этой проблемой. В моем случае, на выходе ./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: и Rerunning 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
Тогда сделай.
Вот ошибка:
libtool: Version mismatch error. This is libtool 2.4.2 Debian-2.4.2-1.11, but the
libtool: definition of this LT_INIT comes from libtool 2.4.6.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1.11
libtool: and run autoconf again.
Ни один из вышеперечисленных не работал.
Тогда это сработало:
wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz -O /root/libtool-2.4.6.tar.gz
tar xzvf /root/libtool-2.4.6.tar.gz -C /root
cp -f /usr/share/libtool/build-aux/ltmain.sh /usr/share/libtool/build-aux/ltmain_sh
cp -f /root/libtool-2.4.6/build-aux/ltmain.sh /usr/share/libtool/build-aux/ltmain.sh
autoreconf -fi
./configure
make