web-dev-qa-db-fra.com

erreur d'incompatibilité de version de libtool

Lors de la construction de mon application avec kdevelop 3.5 sur Ubuntu 10.04, les erreurs suivantes apparaissent:

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 ***

Où puis-je me procurer la version requise de libtool ou comment recréer aclocal.m4?

63
mspoerr

Essayez de courir 

autoreconf --force --install
./configure
make

dans le répertoire racine de votre projet. 

Si cela ne fonctionne pas, essayez d'abord d'exécuter make maintainer-clean, puis passez à l'étape 1. 

Si cela ne fonctionne toujours pas, lancez make maintainer-clean, puis supprimez tous les fichiers générés dans le répertoire racine de votre projet; y compris aclocal.m4, tout répertoire m4, tout répertoire autom4te.cache, configure, Makefile.in, config.h, config.h.in, config.status, libtool, ltmain.sh, etc. Passez ensuite à l'étape 1.

Pourquoi cela fonctionne: libtool et aclocal.m4 sont des fichiers générés par votre système de génération. S'ils ne sont pas synchronisés (générés par différentes versions des outils de génération), vous obtenez alors cette erreur. Normalement, cela ne devrait pas arriver, mais un exemple de ce que cela peut causer est lorsque vous archivez des fichiers générés dans le contrôle de code source.

Cette solution supprime et régénère tous les fichiers générés automatiquement. Une fois effacés et régénérés, ils ne peuvent plus être désynchronisés.

118
ptomato

Essayer

autoreconf -i

L'option -i est importante.

10
Peter Eisentraut

Si vous utilisez Anaconda, cela peut être dû à libtool et autoconf provenant de sources différentes. Vous pouvez vérifier cela en exécutant 

which libtool

which autoconf

Mon libtool était de conda et autoconf était un paquet système. Autoconf désinstallé et réinstallé à l'aide de conda

apt remove -y autoconf (Ubuntu/Debian)

conda install -c anaconda autoconf

Remarque: Vous devrez peut-être également installer automake.

conda install -c anaconda automake

5
Foreever

peut-être avez-vous installé deux libtools de version différente. Essayez de apt-get remove all (jusqu'à ce que vous n'obteniez rien, en tapant which libtool dans la ligne de commande), puis apt-get install celui que vous préférez.

3
Johnson

Essayez de lancer aclocal

1
ninjalj

Je rencontre aussi ce problème. Dans mon cas, dans la sortie de ./autogen.sh, il y a:

libtoolize: Vous devez ajouter le contenu des fichiers suivants à 'aclocal.m4': libtoolize: '/aclocal/libtool.m4' libtoolize: '/aclocal/ltoptions.m4' libtoolize: '/aclocal/ltversion.m4' libtoolize: Pensez à ajouter 'AC_CONFIG_MACRO_DIRS ([m4])' pour configurer.ac, libtoolize: et réexécuter libtoolize et aclocal. libtoolize: Pensez à ajouter '-I m4' à ACLOCAL_AMFLAGS dans Makefile.am.

Je viens d'ajouter le contenu des trois fichiers * .m4 sous/aclocal/au fichier aclocal.m4:

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

puis faire.

0
japrin

Aucun de ce qui précède n'a fonctionné. Après avoir désactivé l'environnement conda, cela a fonctionné:

source deactivate

0
Dawei Yang

Aucun de ce qui précède n'a fonctionné.

Ensuite, cela a fonctionné:

autoconf -f
./configure
make
0
lkraav

voici l'erreur:

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.

Aucun de ce qui précède n'a fonctionné.

Ensuite, cela a fonctionné:

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
0
gameregeve

Je résous ce logiciel de désinstallation libtool et l’installation en amont: git clone

Sudo apt-get install texinfo autoconf fabrique automatiquement. Make
0
Neonigma