Ошибка несоответствия версии 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?
Ответы
Ответ 1
Попробуйте запустить
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
- это оба файла, которые генерируются вашей системой сборки. Если они не синхронизированы (сгенерированы разными версиями инструментов сборки), вы получите эту ошибку. Обычно это не должно происходить, но примером чего-то, что может вызвать это, является то, что вы проверяете сгенерированные файлы на исходный элемент управления.
Что такое это решение, так это удаление и восстановление всех автогенерированных файлов. Как только они стираются и восстанавливаются, они больше не могут синхронизироваться.
Ответ 2
Try
autoreconf -i
Важен параметр -i
.
Ответ 3
Если вы используете 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
Ответ 4
Возможно, вы установили два libtools разной версии. Попробуйте apt-get remove all
(пока вы ничего не получите, когда вы введете which libtool
в командной строке), тогда apt-get install
тот, который вам нравится.
Ответ 5
Попробуйте запустить aclocal
Ответ 6
Я решаю эту деинсталляцию системного libtool и установку из восходящего потока: git clone git://git.savannah.gnu.org/libtool.git
sudo apt-get install texinfo autoconf automake make
./bootstrap
./configure
make
sudo make install
Ответ 7
Ничего из этого не было сделано.
Тогда это сработало:
autoconf -f
./configure
make
Ответ 8
Ничто из вышеперечисленного не сработало. После того, как я деактивировал среду conda, она заработала:
source deactivate
Ответ 9
Я также сталкиваюсь с этой проблемой. В моем случае в выводе. /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
тогда сделай.